2008-12-10 13 views
7

¿Cómo se abre una ruta en el explorador por código en C++. Busqué en Google y no pude encontrar nada más que comandos de sistemas para hacer esto, sin embargo, no quiero que bloquee o muestre la ventana de la consola.Abrir en Explorer

Respuesta

16

Probablemente esté buscando la función ShellExecute() en shell32.h. Se llama con un "verbo de acción", una ruta y parámetros opcionales. En el caso de que esto va a querer ya sea "abierto" o "explorar" de la siguiente manera:

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

Esto abrirá una ventana del explorador sin ataduras en C :. ShellExecute() dará básicamente la misma acción que escribir un comando en el diálogo Ejecutar. También se encargará de direcciones URL, por lo que el siguiente se abrirá el navegador por defecto del usuario:

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

Aunque asegúrese de prestar atención a la nota en la documentación que ShellExecute se basa en COM (Aunque el código no tiene por qué preocuparse por cualquier objeto COM en sí mismo).

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE) 
+0

trabaja un convite y yo lo necesitamos para inicializar la cosa interfaz com, así – Lodle

+0

error C2664: 'ShellExecuteW': no ​​se puede convertir el parámetro 2 de 'const char [5]' a 'LPCWSTR' –

+3

luego use ShellExecuteA –

2

Esto no muestra la ventana de comandos, solo abre el directorio.


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

Camino con el espacio en blanco no está funcionando –

Cuestiones relacionadas