Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2006
igest2000 igest2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Oviedo
Posts: 47
Poder: 0
igest2000 Va por buen camino
Sincronizar dos aplicaciones

Muy buenas a todos.

Veamos necesito resolver un pequeño problema que tengo. Son dos aplicaciones, un editor por un lado y otra que genera un archivo de juego. Bien, desde el editor he querido incluir una opción de previsualización, de tal forma que para ello tengo que ejecutar la aplicación de generación del juego, cosa que tengo resuelta. Bien, ahora necesitaría poder cerrar desde el editor el generador del juego, y una vez que se cierra esta poder previsualizar el juego. Como puedo hacer esto último... porque yo de momento lo que consigo es solo la ejecución del generador desde el editor, pero una vez abierto, no se como puedo cerrar este último y una vez cerrado acceder al archivo de juego que ha generado.

Si alguien puede echarme un cable le estaré muy agradecido.
__________________
=================
El destino esta marcado
y ellos lo saben.
=================
Responder Con Cita
  #2  
Antiguo 11-01-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si la aplicación que genera el juego es tuya y puedes modificarla, lo que yo haría es programar que se la pueda llamar desde la línea de comandos con 1 o dos parámetros;
De ésta forma puedes llamar a la aplicación del juego con un parámetro donde le digas el nombre del fichero de salida. Al ejecutarse, que genere el fichero y se cierre.

Si la aplicación del juego no puedes modificarla, habría que saber cómo guarda el fichero; ¿Siempre con el mismo nombre? ¿Es siempre en el mismo sitio?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 11-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola igest2000,

Si lo que quieres es cerrar otra aplicación desde la tuya prueba con algo como esto: sacado de trucomania

Nota: debes añadir al uses del programa TLHelp32

Código Delphi [-]
(*** Dado el nombre de un ejecutable lo cierra **********)
function KillTask(FileName:String):integer;
var
  ContinueLoop:BOOL;
  FSnapshotHandle:THandle;
  FProcessEntry32:TProcessEntry32;
const PROCESS_TERMINATE=$0001;
begin
  FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
  ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
  while integer(ContinueLoop)<>0 do begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile))=UpperCase(FileName))
        or (UpperCase(FProcessEntry32.szExeFile)=UpperCase(FileName))) then
       Result:=Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE,BOOL(0),
                                        FProcessEntry32.th32ProcessID),0));
    ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;

Saludos
Responder Con Cita
  #4  
Antiguo 11-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por Bicho
Si lo que quieres es cerrar otra aplicación desde la tuya prueba con...
Si tu primer aplicación ejecuta la segunda, y luego quieres que esta primera cierre la segunda, podrías prescindir de la ToolHelp, podrías crear el proceso utilizando CreateProcess de este modo obtienes información del proceso como para poder controlarlo. (En este caso matarlo abruptamente con ExitProcess)
Pero en tu caso yo evitaría matar abruptamente el otro proceso, sino establecería alguna comunicación mediante mensajes, y haría que el primer proceso "le pediría" al segundo que se cierre. De no hacer caso en N tiempo, si utilizaría ExitProcess.
¿Porque haces esto en dos procesos diferentes?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 19-01-2006
igest2000 igest2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Oviedo
Posts: 47
Poder: 0
igest2000 Va por buen camino
Bueno gracias a todos. Ya he conseguido con vuestras sugerencias resolver el problema y lo hice de la siguiente forma.

La aplicación principal JSGEditor ejecuta mediante createProcess la segunda. Al mismo tiempo genera un archivo en un directorio temporal donde indica que se le indica a JSGImplantador (la que crea el juego), que se trata de una ejecución para luego finalizar. De esa forma como me decíais, he modificado el código añadiendo una condición al finalizar el proceso de creación del juego y se cierra la aplicación. Por su parte en JSGEditor al ejecutar la segunda aplicación añadi un Timer para que cada segundo comprobase si aún existía el fichero temporal, que sería el que marcaría la finalización de la creación del juego mediante JSGImplantador, ya que este al cerrarse además borraría dicho archivo. De esa forma he conseguido que las dos aplicaicones queden sincronizadas.

Quizás sea un poco engorroso pero funciona.
__________________
=================
El destino esta marcado
y ellos lo saben.
=================
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
problemas en ejecucion de aplicaciones oavch Windows 1 08-04-2005 12:27:49
Crear aplicaciones llonigualker Internet 1 03-02-2005 02:45:42
skins para aplicaciones pharaonhx Varios 3 24-01-2005 05:27:28
Parametros al ejecutar Aplicaciones + Aplicaciones en Mi PC NeWNeO Varios 4 19-08-2004 15:01:30
Hacer aplicaciones Windows Compliant? __cadetill Debates 1 02-10-2003 02:41:07


La franja horaria es GMT +2. Ahora son las 12:13:19.


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