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)
-   -   Ejecutar shell explorer.exe desde otra aplicación (https://www.clubdelphi.com/foros/showthread.php?t=12371)

Pablo Carlos 14-07-2004 16:06:34

Ejecutar shell explorer.exe desde otra aplicación
 
Al cambiar el en system.ini el shell=Explorer.exe a shell=MiAplicación.exe ejecuto MiAplicación sin problemas y logro lo que necesito... pero la pregunta es, como dice el título, ¿cómo ejecuto el Shell=Explorer.exe desde mi aplicación?.
Gracias por lo que puedan hacer
Saludos Pablo

delphi.com.ar 14-07-2004 16:53:12

Código Delphi [-]
WinExec('exporer.exe', WS_SHOW)
Saludos

Pablo Carlos 14-07-2004 17:12:52

No eso no funciona pues abre el explorer (explorador) de windows y lo que necesito es que cargue el shell de boot de windows que esta en system.ini -> boot -> shell=explorer.exe
Esto es windows95/98 y milenium
Gracias de todos modos y espero encontrar la respuesta :)

delphi.com.ar 14-07-2004 17:24:59

Pero eso es el explorer.exe!!... ¿lo probaste?

roman 14-07-2004 17:25:15

Creo recordar, pero no estoy seguro, que en dichas versiones de Windows, si el explorer detecta que hay otro shell configurado entonces inicia sólo como eso, como explorador y no cmo shell. Prueba lo siguiente:

Justo antes de "winexequear" explorer.exe cambia la línea del sistem.ini para que vuelva a decir shell=explorer.exe y de esta forma indicarle que debe iniciar como shell. Al terminar la sesión tendrías que poner nuevamente tu aplicación cmo shell.

// Saludos

Pablo Carlos 14-07-2004 17:40:03

Roman creo que estamos cerca.... lo que no sé es ¿cómo por codigo, desde mi programa, cambiar la linea en el system.ini?
Gracias Saludos

delphi.com.ar 14-07-2004 17:42:49

Te recomiendo buscar en el foro o en la ayuda de Delphi, información sobre la clase TIniFile

Saludos!

roman 14-07-2004 17:46:24

Cita:

Empezado por delphi.com.ar
Pero eso es el explorer.exe!!... ¿lo probaste?

Creo Federico que el problema es que en realidad explorer.exe es una aplicación con dos caras. Por un lado es el shell de Windows con su barra de tareas, iconos del escritorio y demás. Y por otro es simplemente una ventana que nos permite navegar por el árbol de directorios.

Cuando se inicia explorer.exe tal como lo está intentando Pablo Carlos, inicia de la segunda forma y por tanto no aparecen ni la barra de tareas ni los iconos.

// Saludos

delphi.com.ar 14-07-2004 17:51:28

Cita:

Empezado por roman
Creo Federico que el problema es que en realidad explorer.exe es una aplicación con dos caras. Por un lado es el shell de Windows con su barra de tareas, iconos del escritorio y demás. Y por otro es simplemente una ventana que nos permite navegar por el árbol de directorios.

Cuando se inicia explorer.exe tal como lo está intentando Pablo Carlos, inicia de la segunda forma y por tanto no aparecen ni la barra de tareas ni los iconos.

Recuerdo haber hecho algo así en Win3 con el progman.exe y creo haberlo hecho en Win95 sin problemas. Si en varios Win9x he matado el proceso Explorer.exe y reiniciado y reaparecio la "doble cara" :D... pero no recuerdo con el Shell cambiado :p ...

Saludos!

Pablo Carlos 14-07-2004 18:24:04

Roman eso es exactamente lo que me pasando... y lo que quiero una vez ejecutado mi programa es que aparezcan la barra de tareas.. escritorio e iconos.
Gracias
Saludos

roman 14-07-2004 19:28:45

Cita:

Empezado por Pablo Carlos
lo que quiero una vez ejecutado mi programa es que aparezcan la barra de tareas.. escritorio e iconos.

Pues bien, ahora lo puedo confirmar. En Windows 98, si antes de ejecutar explorer.exe con WinExec, modificas system.ini para restituir la línea

shell=Explorer.exe

entonces el explorer inicia en todo su esplendor, barra de tareas, iconos, etcétera.

Tu tarea ahora es ver como modificar system.ini desde tu programa. Ya Federico te indicó por donde buscarle. Usar la clase TIniFile es realmente muy sencillo.

Por cierto, si quieres probar tú mismo que funciona como te digo antes de meterte con TIniFile, es fácil. Inicias con tu shell y ejecutas explorer.exe (por ejemplo desde un botón) (sólo se abrirá una ventana) sin cerrar tu aplicación. Con la ventana del explorador abierta abres manualmente system.ini y lo modificas. Cierras la ventana del explorador y vuelves a pulsar el botón para ejecutar explorer.exe y verás los resultados.

// Saludos

Pablo Carlos 14-07-2004 23:14:10

Hare mi mejor esfuerzo :) empezare a trabajar con ello y si obtengo lo que necesito se los hare saber...
Un abrazo
Pablo

Pablo Carlos 15-07-2004 01:15:16

Roman...Federico... les comento que es verdad (no lo dudaba, solo lo probe) lo que dijo Roman... Ahora me pongo a modificar el ini desde mi programa que no lo veo nada dificil (además como dijo Federico busca en el FORO y encontrarás lo que necesitas... y asi fue encontre bastante sobre como modificar inis.) Cerrando ¡Viva el Club y su Gente! Saludos y muy agradecido :)
Pablo Carlos

Pablo Carlos 15-07-2004 16:37:30

Miren que sencillo
 
Hola gente... prometi pasar lo que realice cuando este andando y aqui estoy
Miren que sensillo modificar el System.ini...
Agregas al uses inifiles y
Esto en un evento oncreate del form
var
i : TIniFile;
begin
i := TIniFile.Create('System.ini');
i.WriteString('boot','shell','explorer.exe');
i.Free;
end;
y asi puedo ejecutar cualquier cosa como shell y/o normalizarlo
Wiiiiii Gracias :)


La franja horaria es GMT +2. Ahora son las 22:15:29.

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