Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Mostrar directorio con ShellExecute (https://www.clubdelphi.com/foros/showthread.php?t=45824)

MON___ 14-07-2007 19:18:47

Mostrar directorio con ShellExecute
 
Ante todo deciros que empleo Windows XP
Mediante esta función del API
shellExecute(application.Handle, 'explore', 'c:\carpeta_contenedora\archivo.exe', nil, nil, SW_SHOWDEFAULT);

Se me abre el administrador de archivos con la CARPETA CONTENEDORA del archivo "archivo.exe". Esto es lo que pretendo y funciona.
Pero mi consulta es la siguiente: el administrador de archivos se abre con el ÁRBOL DE CARPETAS a la izquierda y esto es lo que quiero evitar.
¿Alguien que me pueda dar una solución?

dec 14-07-2007 21:13:03

Hola,

Echa un vistazo en la ayuda de la función ShellExecute(). Puedes usar el parámetro "open" en lugar de "explore" y pasar, directamente, a continuación, la ruta de la propia carpeta a mostrar: no hace falta que sea un archivo de dicha carpeta la ruta que proporciones.

MON___ 14-07-2007 21:35:33

ShellExecute
 
Cita:

Empezado por dec
Hola,

Echa un vistazo en la ayuda de la función ShellExecute(). Puedes usar el parámetro "open" en lugar de "explore" y pasar, directamente, a continuación, la ruta de la propia carpeta a mostrar: no hace falta que sea un archivo de dicha carpeta la ruta que proporciones.

Muchas gracias, DEC. Tienes razón. No se me había ocurrido. Con el parámetro "open" (o NIL) y la ruta de la carpeta se me muestra en el ADMINISTRADOR DE ARCHIVOS sin el árbol de carpetas en la parte izquierda.
Solucionada mi duda. ¡Gracias!

Loarik 26-03-2008 12:38:30

hola,
estoy ejecutando la siguiente instrucción
if ShellExecute(GetActiveWindow, nil, PChar(Carpeta), nil, nil, SW_SHOW)<=32 then....
para abrir una carpeta, todo correcto excepto que, si no he entendido mal, no tendría que mostrar el arbol de directorios a la izquierda, pero SI los muestra con lo que permite navegar por todo el disco duro.
Que estoy haciendo mal?
¿Puede influir que trabaje con Windows Vista?

dec 26-03-2008 12:50:28

Hola,

Pues puede ser que tenga algo que ver lo que dices, según leo en la documentación de la función "ShellExecute()". Creo que debes especificar "open", en lugar de "nil". A ver si así el asunto va como quieres. En otro caso... no sabría qué más decirte, sino es que, sea como sea, no podrás impedir que el usuario se mueva en la carpeta que le muestres. De hecho, no tienes control sobre dicha carpeta y lo que el usuario haga, utilizando "ShellExecute()". Quiero decir que, si buscas algo así, tal vez deberías plantearte otra solución.

Loarik 26-03-2008 13:07:00

Gracias,

Lo de utilizar 'open' ya lo probé, y funciona igual. Seguro que el fallo tiene que ver con Vista. De todas maneras prefieren que se muestre el árbol de carpetas, con lo que por ahora ya no tengo el problema.
Muchas gracias por la rapidez, hasta otra...


La franja horaria es GMT +2. Ahora son las 00:45:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi