Ouvrir Explorateur Windows dans un répertoire dont le nom est variable

Résolu
DD05 Messages postés 53 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 juin 2010 - 25 juin 2009 à 11:59
DD05 Messages postés 53 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 juin 2010 - 25 juin 2009 à 16:28
Bonjour,

J'utilise le code suivant pour ouvrir l'Explorateur Windows depuis VB6.

Private Sub Ouvrir_Windows_Explorer_Click ()
 Dim taskid as long
 taskid = shell ("C:\Windows\explorer.exe C:\Windows", vbNormalFocus)
End sub

Le problème est que dans ce cas, l'explorateur windows s'ouvre toujours dans le répertoire c:\Windows.

Comment faire pour ouvrir l'explorateur windows dans n'importe quel répertoire ?

Si je met une varaible à la place de C:\windows, ca ne marche pas.

Merci

DD05

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 juin 2009 à 12:29
Salut
Ta méthode d'ouverture de l'explorateur de fichier suppose que Windows est installé sous C:\ et que le répertoire s'appelle bien Windows.
Pas top.
D'autre part, quand ta chaine représentant le répertoire comporte des espaces, cela peut poser des problème d'interprétation dans des lignes de commande qui doivent faire du découpage pour retrouver le programme et les paramètres.
Dans ce cas, il faut encadrer ton chemin avec des ".
   Shell "C:\Windows\explorer.exe """ & monChemin & """", vbNormalFocus
Tu noteras le doublage de " à l'intérieur d'une chaine elle-même délimitée par des " = méthode d'insertion en doublant les "

Une méthode qui ne pose pas de problème, c'est le ShellExecute (API) :
Déclaration :
   Private Const SW_SHOWNORMAL As Long = &H1
   Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
         ByVal hwnd As Long, _
         ByVal lpOperation As String, _
         ByVal lpFile As String,  _
         ByVal lpParameters As String,  _
         ByVal lpDirectory As String,  _
         ByVal nShowCmd As Long) As Long

Utilisation :
   ShellExecute Me.hWnd, "Open", monChemin, vbNullString, monChemin, SW_SHOWNORMAL

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3