• Domingo 28 de Abril de 2024, 21:38

Autor Tema:  Re: detectar cuando una aplicacion se cierra  (Leído 1945 veces)

neo644

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
    • http://www.neo644..com.ar
Re: detectar cuando una aplicacion se cierra
« en: Lunes 21 de Abril de 2003, 01:58 »
0
yo tengo un programa A, y desde ese lanzo un programa B.
como haria, desde el programa A para detectar cuando se cierra el programa B?

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: detectar cuando una aplicacion se cierra
« Respuesta #1 en: Lunes 21 de Abril de 2003, 04:12 »
0
hola, tal vez haya otra forma de hacer, pero esta es la unica que conozco:

a travez de sockets o a traves de rpc.

a travez de socket, para indows busca la libreria winsock.. es sencillo una vez hayas a prendido a manejarlos.

en linux con libsocket.

si quieres manejar rpc, enm linux es sencillisimo ya que te genera todo el codigo con el comando rpcgen , y solo lo modigficas para tu aplicacion, en windows no lo he manejado.

Sinceramente , sea cual sea la manera que encuentres de hacerlo, no es para principiantes, es más bien para un nivel intermedio.

una trampita puede ser decirle al programa que antes de acabar, cree un archivo, de tal manera que el programa de origen verifique ciclicamente que el archivo exista, si existe  lo borra y ya sabe que el otro programa se cerro.

Es una trampita un poco vil.

:P

JuanK
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

neo644

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
    • http://www.neo644..com.ar
Re: detectar cuando una aplicacion se cierra
« Respuesta #2 en: Lunes 21 de Abril de 2003, 16:00 »
0
lo del archivo lo pense, pero no seria muy prolijo ke digamos, ademas se ke hay otra manera de hacerlo

y lo ke me dijiste no sirve, ya ke el programa B no esta echo por mi, es decir, puede ser un programa como internet explorer, icq, word, etc. por ende toda la verificacion debe realizarse desde el programa A

un ejemplo es el Speed Up, el programita que viene con el KaZaA Lite.
por si no sabes lo ke hace, cuando abris el kazaa, aparte abrir este programa speed up, y este interfiere en el proceso del kazaa y te va buscando mas recursos para tu download.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: detectar cuando una aplicacion se cierra
« Respuesta #3 en: Lunes 21 de Abril de 2003, 16:45 »
0
lo de los sockets.. si funciona...!!! pero no aplica en tu caso.

opcion nro 3:

elabora un modulo que revise los procesos del sistema ..por ejemplo si word esta activo habria un proceso winword.exe...que desaparece al cerrar word, para hacer esto seguramente que tendras que usar el api de windows.

otra opcion más:

tambien a travez del api...debes indagar acerca de las señalaes que emite un proceso al cerrarce, y a travez de las funciones de la api capturar estas señales cuando sean emitidas.

Suerte.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

neo644

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
    • http://www.neo644..com.ar
detectar cuando una aplicacion se cierra
« Respuesta #4 en: Lunes 21 de Abril de 2003, 16:56 »
0
en otro foro me dijeron ke use
la funcion CreateProcess(). se puede lanzar un proceso nuevo y devuelve una estructura ke tiene un handle al nuevo proceso, depue usas WaitForSingleObject() con el parametro ke devolvio CreateProcess() y te fijas regularmente a ver cuando se cierra, ya ke al cerrarse el programa envia una senial.. pero
me tuve fijando como usar las funciones pero no me funcionan.. hize un programita ke lanza al otro con CreateProcess pero me da un error de access violation...