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 22-03-2015
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Conocer cuando es eliminado el proceso

Hola a todos, existe algún evento o algo al estilo que se pueda consultar en el momento en el que el proceso que ejecuta la aplicación es eliminado del administrador de tareas. He probado el evento Destroy del Form principal pero no me funciona y lo que necesito es ejecutar cierta instrucción cuando el proceso es eliminado (específicamente como proceso del administrador de tareas de Windows.

Gracias por sus atenciones
Responder Con Cita
  #2  
Antiguo 22-03-2015
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
La verdad nunca intente algo asi. Pero el proceso si es uno por la aplicacion deberia ser:

Código Delphi [-]
Application.Terminate;
pero prueba con el Onclose, porque fijate que si abres tu aplicacion y abres otros form(otras ventana), las minimizas y le das cerrar al form principal se cierra todo.
No se cual es tu necesidad, para que quieres hacer eso.

Saludos
Responder Con Cita
  #3  
Antiguo 22-03-2015
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Gracias por la respuesta, pero no funciona tampoco. la necesidad es vital, ya que necesito que cuando la aplicación se cierre cerrar otros procesos internos que estoy usando, como es lógico si se cierra por la vía normal, no hay problemas, el tema está cuando matan el proceso, por eso requiero ver si es posible detectar un cierre de este tipo. Gracias una vez mas
Responder Con Cita
  #4  
Antiguo 22-03-2015
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Cita:
Empezado por cmfab Ver Mensaje
Gracias por la respuesta, pero no funciona tampoco. la necesidad es vital, ya que necesito que cuando la aplicación se cierre cerrar otros procesos internos que estoy usando, como es lógico si se cierra por la vía normal, no hay problemas, el tema está cuando matan el proceso, por eso requiero ver si es posible detectar un cierre de este tipo. Gracias una vez mas
Para cerrar otros procesos de otras aplicaciones? supongo que es complejo y debes operar el registro de windows, es decir el SO, pero nunca lo hice.
Responder Con Cita
  #5  
Antiguo 23-03-2015
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
Lo normal en estos casos (normal o habitual) es tener otro proceso que te hace de vigía.
Algo similar a lo que hace el Interbase Guardian o muchos programas antivirus. Este segundo proceso (que puede ser un servicio) es el que "vigila" al principal.

Y según lo que pasa con el "principal" hace unas acciones u otras.

PROBLEMA: Si matas al vigilante... (STOP del servicio) no hay nadie que vigile.

Creo que desde el propio proceso no siempre vas a poder detectar el cierre, sobre todo si se realiza de forma "forzosa".
__________________
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
  #6  
Antiguo 23-03-2015
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Gracias por las respuestas, no me sirve un segundo proceso, ya que la instrucción que tengo que ejecutar es obligatorio que se realice en el proceso 1, así que por lo que veo no tengo solución a este problema. Gracias nuevamente por sus dedicaciones y tiempo
Responder Con Cita
  #7  
Antiguo 24-03-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
cmfab,

Cita:
Empezado por cmfab
...existe algún evento o algo al estilo que se pueda consultar en el momento en el que el proceso que ejecuta la aplicación es eliminado del administrador de tareas...necesito que cuando la aplicación se cierre cerrar otros procesos internos que estoy usando...
Cita:
Empezado por Neftali
...Lo normal en estos casos (normal o habitual) es tener otro proceso que te hace de vigía...Creo que desde el propio proceso no siempre vas a poder detectar el cierre, sobre todo si se realiza de forma "forzosa"...
Cita:
Empezado por cmfab
...no me sirve un segundo proceso...


Pregunto : ¿Has considerado la posibilidad de bloquear el Task Manager a un usuario o grupo en específico para evitar que cierre la aplicación en cuestión?

Revisa esta información
Espero sea útil

Nelson.
Responder Con Cita
  #8  
Antiguo 24-03-2015
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
Cita:
Empezado por nlsgarcia Ver Mensaje
¿Has considerado la posibilidad de bloquear el Task Manager a un usuario o grupo en específico para evitar que cierre la aplicación en cuestión?
El problema es que el Task Manager no es la única forma de matar el proceso.
Hay muchas otras similares (incluso mejores) e igual de efectivas.
__________________
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
  #9  
Antiguo 24-03-2015
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
Yo mismo uso a menudo PSKill (de SysInternals/Microsoft) que va muy bien para los usar en BAT/CMD.
__________________
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
  #10  
Antiguo 24-03-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Neftali,

Cita:
Empezado por Neftali
...El problema es que el Task Manager no es la única forma de matar el proceso...Hay muchas otras similares (incluso mejores) e igual de efectivas...Yo mismo uso a menudo PSKill (de SysInternals/Microsoft) que va muy bien para los usar en BAT/CMD...
Es correcto

Quizás se pueda acotar el problema planteado a un entorno específico en el cual el usuario o grupo de usuarios, no tengan los privilegios requeridos que interfieran con el workaround sugerido.

Los antivirus de Norton tiene la facultad de evitar que sean eliminados de memoria tanto con Task Manager (Windows) como con Process Explorer y PSKill (SysInternals), habrá que ver como Symantec evita ser eliminado de memoria por medios convencionales.

Saludos,

Nelson.
Responder Con Cita
  #11  
Antiguo 25-03-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
El asunto es muy simple: Si el proceso se muere, todo muere con el.

Tener un guardian es una solucion *parcial* (aunque es buena idea!), pero no es la definitiva, porque el proceso puede morir por ejemplo, por una caida total del sistema.

P.D: Ahora, me parece MUY raro el caso de uso que planteas: Que es lo que *realmente* quieres hacer? Siempre que cuando alguien se pone a hacer cosas raras es porque tiene un problema, y en vez de resolver el problema... hace cosas raras
__________________
El malabarista.
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
Hacer que cuando termine un proceso el Form aparezca al frente aguml C++ Builder 2 26-10-2014 00:20:06
Conocer La ubicacion de un Proceso en ejecucion delphi force1758 Varios 4 22-06-2013 10:34:23
Conocer cuando hay una conexion RAS activa Rolando Glez Internet 4 10-12-2009 04:14:29
Conocer cuando suceda un cambio en una tabla subzero MS SQL Server 3 25-01-2008 19:32:00
cuando llamo ejecutar un hilo dentro del proceso del hilo no lo hace robertosc Varios 1 14-08-2007 23:11:09


La franja horaria es GMT +2. Ahora son las 10:49:53.


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