Actualisation d'un dossier

cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010 - 6 juil. 2009 à 20:36
cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010 - 7 juil. 2009 à 21:01
Bonsoir

Je cherche une méthode pour ouvrir un dossier et en actualiser le contenu

Pour ouvrir le dossier, pas de problème


Dim newProc As Diagnostics.Process
newProc = Diagnostics.Process.Start("explorer.exe")

Par contre le problème se pose pour actualiser ce dossier

j'ai essayé plusieurs choses

newProc.Refresh()
ou
SendKeys.Send("{F5}")

Mais rien n'y fait, je n'arrive pas à actualiser

Avez-vous une solution à ce problème

Merci par avance.

PhilouVB

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
7 juil. 2009 à 05:14
salut,

un redrawwindow ou un postmessage sur wm_paint devrait suffire, à essayer
++

<hr size="2" width="100%" />
0
cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010
7 juil. 2009 à 18:40
Pourrais-tu m'en dire un peu plus.
J'ai regardé sur MSDN, mais je n'ai rien trouvé qui puisse m'aider.

par avance merci
0
cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010
7 juil. 2009 à 18:54
j'ai trouvé la méthode suivante :

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Sub RefreshDesktop()
Dim ProgMan As Long, Desktop As Long
ProgMan = FindWindow("Progman", "Program Manager")
Desktop = FindWindowEx(ProgMan, 0, "SHELLDLL_DefView", vbNullString)
PostMessage(Desktop, &H111, &H7103, 0)
End Sub

Mais qui hélas n'actualise pas mes dossiers.

Y a t il un problème dans cette instruction qui empeche l'actualisation ?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
7 juil. 2009 à 20:18
"progman" ??? c'était sous win3.51 non?....
peut-être conservé pour compatibilité mais bon

newProc ne te renvoie pas de HANDLE?
sur lequel faire un redraw, comme indiqué au dessus
(tu connais le snippet sur lequel te baser pour la déclaration de l'api)

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010
7 juil. 2009 à 21:01
Si j'utilise

Dim newProc As Diagnostics.Process
newProc = Diagnostics.Process.Start("explorer.exe")

J'obtiens un handle.

Cela peut-il etre utile ?
0
Rejoignez-nous