Actualiser le bureau [Résolu]

Messages postés
141
Date d'inscription
mardi 18 mars 2003
Dernière intervention
3 octobre 2010
- - Dernière réponse : cs_PHILOUVB
Messages postés
141
Date d'inscription
mardi 18 mars 2003
Dernière intervention
3 octobre 2010
- 28 juin 2009 à 20:22
Bonjour

Je cherche à savoir comment actualiser le bureau.

j'ai essayé avec Keyboard.Send(F5,true), mais en fait cela actualise mon programme et non l'environnement windows

Avez-vous une petite astuce à me proposer ?

merci par avance

PhilouVB
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
3
Merci
Salut,

J'ai cherché la même chose il n'y a pas longtemps mais sans succès... Il doit bien exister une API pour ca..?

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Mayzz
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
3
Merci
Bon j'ai avancé un peu,

J'ai repris les réponses d'un de tes ancien post = => http://www.vbfrance.com/forum/sujet-ACTUALISER-MON-BUREAU_960570.aspx

Ce qui nous amènent au moceau de code laissé par lolokun

' actualiser Bureau
actualDesktop = "RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True"
WshShell.run actualDesktop,1,True

Il sagit bien d'une API d' User32.dll

Pour le moment je n'ai réussi à la traduire et à la faire fonctionner que sous VB6/XP32Bits

Declare Function UpdatePerUserSystemParameters Lib "User32.dll" (ByVal i As Long, ByVal b As Boolean) As long

En appelant celle-ci de cette façon :

Call UpdatePerUserSystemParameters (1, True)

Pour ce qui est de la traduction en .Net j'ai tenté :

Declare Auto Function UpdatePerUserSystemParameters Lib "User32.Dll" (ByVal i As Interger, ByVal b As Boolean) As Integer

Mais cela n'a pas l'air de fonctionner, j'ai des exceptions de première chance en sortie, les paramètres ne doivent pas correspondrent.

Je suis sous Vista x64 / Vs 2008.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Mayzz
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
3
Merci
Re,

Je vien de tenter sans paramètres :

Private Declare Auto Sub UpdatePerUserSystemParameters Lib "User32.dll" ()
 
Call UpdatePerUserSystemParameters 

On dirait que ca fonctionne pour ce qui est du fond d'écran (mais pas pour les icones du bureau).

Cependant, cela provoque une sorte de flash noir bizard...

@+ Mayzz.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Mayzz
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
3
Merci
salut,

çà me paraît un peu lourd oui ^^

il faut d'abord bloquer le bureau (sinon le refresh n'aura pas d'effet)
ensuite forcer le refresh, et enfin débloquer

je fais un petit exemple de suite


<hr size="2" width="100%" />

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de PCPT
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
3
Merci
Arf, en fait, je viens de découvrir que ma traduction en.Net est bonne, le soucis c'est que l'API elle même ne fonctionne pas sous Vista x64 apparemment...

Quand au code plus haut il fait planté le menu démarrer.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Mayzz
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
3
Merci
c'est pas très très bien ^^



<hr />
'    RAFRAICHIR LE BUREAU WINDOWS
'    http://www.codyx.org/snippet_rafraichir-bureau-windows_793.aspx#2378
'    Posté par [ PCPT ] le 28/06/2009
<hr />




    Private Const RDW_INVALIDATE As Integer = &H1
    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function GetDesktopWindow() As IntPtr
    End Function
    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function LockWindowUpdate(ByVal hwndLock As IntPtr) As Integer
    End Function
    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function RedrawWindow(ByVal hwnd As IntPtr, ByVal lprcUpdate As Integer, ByVal hrgnUpdate As Integer, ByVal fuRedraw As Integer) As Integer
    End Function

    Public Sub RefreshDesktop()
        Dim hDesk As IntPtr = GetDesktopWindow()
        LockWindowUpdate(hDesk)
        RedrawWindow(hDesk, 0, 0, RDW_INVALIDATE)
        LockWindowUpdate(False)
    End Sub









PS : comme quoi les API, c'est pratique quand même

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de PCPT
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
3
Merci
Wahooo  PCPT ! La tu m'épate ^^

Plus serieusement bravo, très beau code, t'as tout mon respect

PS: en effet le framework a ses limites...

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Mayzz
Messages postés
141
Date d'inscription
mardi 18 mars 2003
Dernière intervention
3 octobre 2010
3
Merci
Un grand merci pour tout.
Je vais regarder de plus pret tout cela (et surtout comprendre ce code) !!

Encore merci

PhilouVB

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_PHILOUVB

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.