2008-12-10 6 views
7

Comment ouvrir un chemin dans l'explorateur par le code en C++. Je ai googlé et ne pouvais pas trouver n'importe quoi mais les commandes des systèmes pour le faire, cependant, je ne veux pas qu'il bloque ou affiche la fenêtre de la console.Ouvrir dans l'Explorateur

Répondre

16

Vous êtes probablement à la recherche de la fonction ShellExecute() dans shell32.h. Il est appelé avec un "verbe d'action", un chemin, et des paramètres optionnels. Dans votre cas, cela voudra soit « ouvert » ou « explorer » comme suit:

ShellExecute(NULL, "open", "C:\", NULL, NULL, SW_SHOWDEFAULT); 

Cela ouvrira une fenêtre de l'explorateur non attaché à C :. ShellExecute() donnera essentiellement la même action que de taper une commande dans la boîte de dialogue Exécuter. Il traitera également des URL, de sorte que le suivant va ouvrir le navigateur par défaut de l'utilisateur:

ShellExecute(NULL, "open", "http://www.google.com", NULL, NULL, SW_SHOWDEFAULT); 

Bien assurez-vous de prêter attention à la note dans la documentation ShellExecute repose sur COM (Même si votre code ne doit pas s'inquiéter de tout objet COM lui-même).

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE) 
+0

fonctionne un régal et je na pas besoin init la chose interface com ainsi – Lodle

+0

erreur C2664: « ShellExecuteW »: ne peut pas convertir le paramètre 2 de « const char [5] » à 'LPCWSTR' –

+3

puis utilisez ShellExecuteA –

2

Ceci n'affiche pas la fenêtre de commande, ouvre simplement le répertoire.


system("explorer C:\\"); 
 
+0

chemin avec un espace blanc ne fonctionne pas –