Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-01-2013
chuli17 chuli17 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 11
Poder: 0
chuli17 Va por buen camino
Question ¿Como esperar a que se ejecute un programa externo sin que termine?

Hola muy buenas a todos y Feliz Año, aber si alguien me puede ayudar ya que e buscado y no encuentro nada ,tengo este codigo:

Código Delphi [-]
uses
Windows, Funciones;

var
  Process: Cardinal;
  H, U: HWND;
begin
  Process := ExecuteProcess('GameLauncher.exe');

//Aqui quiero que se pare asta que la ventana del juego sea visible, si no para, ejecuta el resto de codigo antes de tiempo y no funciona...
/////////////////////////////////////////////
if Process <> 0 then                       //
                                           //  Esto no me funciona aveces depende lo que tarde en abrir, ya que el juego es pesado.
WaitForSingleObject(Process, 6000);        //
////////////////////////////////////////////
begin
  H := FindWindow('WindowsForms10.Window.8.app.0.fcf9a4', nil); //WindowsForms10.Window.8.app.0.fcf9a4
if H <> 0 then
begin
  U := FindWindowEx(H, 0, 'WindowsForms10.Window.8.app.0.fcf9a4', nil); //WindowsForms10.Window.8.app.0.fcf9a4
if U <> 0 then
begin
  U := FindWindowEx(U, 0, 'WindowsForms10.EDIT.app.0.fcf9a4', nil); //WindowsForms10.EDIT.app.0.fcf9a4
if U <> 0 then
  SendMessage(U, WM_SETTEXT, 0, Integer(PCHAR('123456789'))); //Envio Contraseña para colocarla en un edit.
  PostMessage(U,WM_KEYDOWN,VK_RETURN,0); // Envio un INTRO al edit para entrar en el juego.
    end;
  end;
end;

end.

Lo que quisiera es que pare despues de ExecuteProcess, asta que la ventana sea visible, nose si me e esplicado bien, aber si alguien me puede tirar alguna ayudilla e intentado varias cosas y nada... Muchas gracias desde ya.

Última edición por chuli17 fecha: 04-01-2013 a las 02:26:06. Razón: Icono del mensaje inportante
Responder Con Cita
  #2  
Antiguo 04-01-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por chuli17 Ver Mensaje
...
Lo que quisiera es que pare despues de ExecuteProcess, asta que la ventana sea visible, nose si me e esplicado bien, aber si alguien me puede tirar alguna ayudilla e intentado varias cosas y nada... Muchas gracias desde ya.
Hola chuli17.

Si no te entendí mal, pareciera que el problema lo tenes en la función ExecuteProcess. Proba escribiéndola de este modo:
Código Delphi [-]
function ExecuteProcess(aName : string): Boolean;
var
  sInfo: TStartupInfo;
  pInfo : TProcessInformation;
begin
  ZeroMemory(@sInfo,SizeOf(TStartupInfo));
  ZeroMemory(@pInfo, SizeOf(TProcessInformation));
  sInfo.cb := SizeOf(TStartupInfo);
  Result:= CreateProcess(nil,PChar(aName),nil,nil,False,
           CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS,nil,nil,sInfo,pInfo);
  if Result then
    WaitForSingleObject(pInfo.hProcess,INFINITE);
  CloseHandle(pInfo.hProcess);
  CloseHandle(pInfo.hThread);
end;

Un ejemplo de llamada:
Código Delphi [-]
const
   APPNAME = 'C:\JUEGOS\ETC_ETC\GameLauncher.exe';
begin
  if not ExecuteProcess(APPNAME) then
    raise Exception.Create('Error al intentar ejecutar ' + ExtractFileName(APPNAME));  
  // Resto del código...
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 04-01-2013 a las 19:11:15. Razón: ortografía
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Abrir PDF y esperar a que termine mjjj Varios 4 06-09-2012 17:03:16
Ejecutar un programa y esperar a que termine. jplj Varios 2 04-12-2008 14:54:53
Ejecutar archivo y esperar que termine Ana María API de Windows 2 05-09-2008 19:57:54
Ejecutar Exe de mi Aplicacion y Esperar a que Termine spider_Ramon API de Windows 4 07-09-2005 01:07:01
Esperar a que termine un proceso felixgo OOP 4 02-06-2004 19:46:45


La franja horaria es GMT +2. Ahora son las 17:24:13.


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
Copyright 1996-2007 Club Delphi