WaitForSingleObject
Publicado por Oscar (18 intervenciones) el 07/04/2009 20:41:39
Hola a todos,
Si alguien me puede ayudar lo agradecería mucho, tengo una aplicación en Delphi que llama a un procedimiento y luego ejecuta una aplicación externa con ShellExecute, la cual funciona perfectamente , mi problema es que luego de ejecutarse la aplicación externa, debe ejecutarse un llamado a otra Procedure pero primero debe terminar el proceso de ShellExecute, hoy lo que hace es que no hace la pausa , es decir, no espera que termine la aplicación llamada por ShellExecute para comenzar con la otra y no sé como se hace, probé con el comando "WaitForSingleObject", pero no sé si lo apliqué correctamente , para esto me colgué de un ejemplo, lo que hice fue lo siguiente:
var
TPI : TProcessInformation;
nproces, exitCode : cardinal;
begin
Ejecuta Procedure Nro 1;
ShellExecute( Self.Handle,'OPEN',PChar( 'xx'), 'xx', Nil, SW_SHOWMINIMIZED);
{Esperamos que termine}
repeat
exitCode := WaitForSingleObject( tpi.hProcess ,1000);
Application.ProcessMessages;
until (exitCode <> 1000);
Ejecuta Procedure Nro 2;
Traté de implementar este ejemplo pero no me resultó.
Que estoy haciendo mal ??? si alguien me puede aconsejar o guiar.
De antemano se agradece
Oscar.
Si alguien me puede ayudar lo agradecería mucho, tengo una aplicación en Delphi que llama a un procedimiento y luego ejecuta una aplicación externa con ShellExecute, la cual funciona perfectamente , mi problema es que luego de ejecutarse la aplicación externa, debe ejecutarse un llamado a otra Procedure pero primero debe terminar el proceso de ShellExecute, hoy lo que hace es que no hace la pausa , es decir, no espera que termine la aplicación llamada por ShellExecute para comenzar con la otra y no sé como se hace, probé con el comando "WaitForSingleObject", pero no sé si lo apliqué correctamente , para esto me colgué de un ejemplo, lo que hice fue lo siguiente:
var
TPI : TProcessInformation;
nproces, exitCode : cardinal;
begin
Ejecuta Procedure Nro 1;
ShellExecute( Self.Handle,'OPEN',PChar( 'xx'), 'xx', Nil, SW_SHOWMINIMIZED);
{Esperamos que termine}
repeat
exitCode := WaitForSingleObject( tpi.hProcess ,1000);
Application.ProcessMessages;
until (exitCode <> 1000);
Ejecuta Procedure Nro 2;
Traté de implementar este ejemplo pero no me resultó.
Que estoy haciendo mal ??? si alguien me puede aconsejar o guiar.
De antemano se agradece
Oscar.
Valora esta pregunta


0