Delphi - Ayuda para ejecutar Ventana !!

 
Vista:

Ayuda para ejecutar Ventana !!

Publicado por Carlos B (31 intervenciones) el 02/09/2003 06:47:49
Hola amigos, gracias por existir, es bueno saber que en medio de tanto
código no estamos solos!!.-
mi problema: estoy creando un pequeño instalador que se ejecuta
previo al instalador del install shield, para recabar información de la pc
donde se va instalar el programa , yo quería que luego de ejecutar mi
pequeño instalador , no se termine y tenga que ir a buscar manualmente el ejecutable o sea el setup.exe. Yo estuve probando
con "Winexec(' comando a ejecutar, 0), pero no puedo pasarle el path
porque me dice que es incompatible string con pchar, y no se como
transformarlo , o hay otra manera de hacerlo??, Gracias, y espero me entiendan.. :)!! . Carlos. -

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda para ejecutar Ventana !!

Publicado por Fer (269 intervenciones) el 02/09/2003 08:55:52
WinExec(PChar('comando a ejecutar'), 0);

Infórmate sobre el concepto de "type casting".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Algo más actual...

Publicado por Jorge (18 intervenciones) el 02/09/2003 17:50:57
El WinExec está por compatibilidad. Lo usas sobre todo cuando tenés que ejecutar programas de 16 bits. Para programas nuevos (Win32 en adelante) se usa la API CreateProcess:

VAR
start : _STARTUPINFOA;
info : _Process_INFORMATION;
estado : Cardinal;
BEGIN
// El CreateProcess te permite configurar muchas cosas, si querés que use
// las mismas políticas que el programa que lo invoca llamá a esta API
GetStartUpInfo(start);
// Acá se ejecuta el programa realmente. Después de esto lo podés
// mandar a un Thread o algo así.
CreateProcess('C:\prog.exe',nil,nil,nil,True,NORMAL_PRIORITY_CLASS,nil,nil,start,info);

// Podés usar este código o algo similar para saber si el programa que
//mandaste ejecutar terminó.
GetExitCodeProcess(info.hProcess,estado);
while estado = STILL_ACTIVE do
Sleep(100)
// Si sale es porque finalizó.
END;

Salu2!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar