Pregunta: | 30812 - EJECUCIóN DE APLICACIONES EXTERNAS |
Autor: | Rubén Malonda |
Hola amigos:
Me gustaría saber como controlar la sucesión de varias apliaciones externas con Delphi. Es decir, me gustaría poder detectar el estado de una aplicación que haya iniciado desde Delphi para que no comience la próxima hasta que haya finalizado la anterior. Gracias. Rubén |
Respuesta: | Lucas Colombo |
Te paso el codigo para ejecutar una aplicación externa y esperar a que esta termine. Espero que te sea util.
function Ejecutar(const AppName,Params: string): THandle; var ProcInfo: TProcessInformation; Info : TStartupInfo; begin FillChar(Info,SizeOf(Info),0); Info.cb := SizeOf(Info); Info.dwFlags := STARTF_USESHOWWINDOWS; Info.wShowWindows := SW_SHOWNORMAL; if not CreateProcess(nil,PChar(AppName + ' ' + Params) ,nil,nil,False,0,nil,nil,Info,ProcInfo) then raise Exception.Create('No se puede iniciar la aplicacion'); Result := ProcInfo.hProcess; end; procedure TwndMain.Esperar(H;THandle); begin while WaitForSingleObject(H,100) = WAIT_TIMEOUT do begin Application.ProcessMessages; if Application.Terminated then Break; end; end; Y para usarla: Esperar(Ejecutar(Nombre_de_la_aplicacion,parametros)); Suerte !!! |