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 10-01-2007
Avatar de Spynosa
Spynosa Spynosa is offline
Miembro
 
Registrado: nov 2004
Ubicación: Ecija - Sevilla
Posts: 99
Poder: 20
Spynosa Va por buen camino
como saber si un programa esta colgado

Hola a tod@s

Necesitaría saber desde un programa escrito en delphi7 si otro programa tambien en delphi7 se encuentra colgado o no responde porque esta haciendo una larga tarea y aun no ha terminado.

de esta manera si esta colgado prodia matar el prosceso y ejecutarlo de nuevo.

gracias
Responder Con Cita
  #2  
Antiguo 10-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
y ¿como sabes que Windows no miente?

Yo hice un programa que copiaba muchos megabytes de unas carpetas a otro, no hacía un "application.processmessages" para no alargar los ciclos más de lo necesario, y entonces Windows decía que "el programa no responde".

Realmente el programa funciona muy bien, pero dado que no procesa los mensajes de la cola hasta terminar la operación de copiado, Windows se quejaba.

Moraleja: Si el programa "no responde", pero hace su trabajo bien, deja que termine. Si la operación necesita más tiempo.... es que necesita más tiempo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 11-01-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Una forma seria enviadole un mensaje al programa y que te devuelva una respuesta de que esta vivo.

Podrias usar cualquiera de los metodos de comunicacion entre aplicaciones que se hablo varias veces en el foro.
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 11-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Crandel
Una forma seria enviadole un mensaje al programa y que te devuelva una respuesta de que esta vivo.
Pero ése es justo el problema ¿no? En un caso como el que describe Lepe, no recibirás respuesta del programa, no porque esté colgado sino porque está muy ocupado, pero eventualmente terminará.

// Saludos
Responder Con Cita
  #5  
Antiguo 11-01-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
pero eso porque el quiere evitar el tiempo que le consume el ProcessMessages (que tampoco es tan grande) u otra alternativa como con multihilo. Algo tenes que ceder. No podes esperar que responda si no procesa los mensajes.
__________________
[Crandel]
Responder Con Cita
  #6  
Antiguo 11-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pero el ejemplo de Lepe, en mi opinión, lo que a final de cuentas muestra es que no hay una forma precisa de determinar si un programa está colgado o no, entendiendo por colgado que ya jamás responderá.

Ahora bien, yo presupuse desde el principio del hilo que no se tiene control sobre el programa "colgable" y que por ello se quiere tener la posibilidad de "matarlo" con otra aplicación. Pero, desde luego, si el código es nuestro, entonces ciertamente donde hay que trabajar es no en matarlo sino en hacer que corra procesos largos en hilos separados.

// Saludos
Responder Con Cita
  #7  
Antiguo 11-01-2007
Avatar de Spynosa
Spynosa Spynosa is offline
Miembro
 
Registrado: nov 2004
Ubicación: Ecija - Sevilla
Posts: 99
Poder: 20
Spynosa Va por buen camino
a ver os cuento:

yo tengo un programa que se minimiza junto al reloj de windows xp y cada cinco minutos conecta con una base de datos firebird 1.5 a través de internet y actualiza datos.

el progrma principal es de ventas. entonces no hay nadie pendiente del programa que transmite los datos y hay veces que "por lo que sea" se queda colgado y la tienda deja de transmitir datos. yo lo que quiero es que cada cierto tiempo el programa peincipal compruebe si el de transmisión esta funcionando bien o esta colgado, en cuyo caso quiero que se reinicie.

gracias por vuestra ayuda
Responder Con Cita
  #8  
Antiguo 11-01-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
pues como dije al principio enviale un mesaje al programa, si responde es xq esta todo bien.
__________________
[Crandel]
Responder Con Cita
  #9  
Antiguo 11-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo más bien creo que como dijo Lepe desde el principio, todo dependerá de como esté hecho el programa que transmite los datos. Si no es multihilos o da tiempo de procesar los mensajes mientras transmite los datos, de poco valdrá mandarle un mensaje para saber si sigue vivo, pues no va a responder mientras no termine de mandar los datos, sin que esto signifique necesariamente que esté colgado.

Y, en mi opinión, más que preocuparse por monitorear al programa de transmisión, yo me ocuparía de ver por qué "lo que sea" detiene al programa.

// Saludos
Responder Con Cita
  #10  
Antiguo 11-01-2007
Avatar de Spynosa
Spynosa Spynosa is offline
Miembro
 
Registrado: nov 2004
Ubicación: Ecija - Sevilla
Posts: 99
Poder: 20
Spynosa Va por buen camino
gracias a todos por vuestra ayuda, intentaré averiguar porque se cuelga, que creo que es cuando se corta la comunicación mientras transmite, y aun así intentaré mandarle un mensaje tambien como propone Crandel.

un saludo
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
evitar colgado de programa vivamotos C++ Builder 3 12-02-2007 17:16:59
Saber que programa se esta ejucutando y cerrarlo majaco Varios 1 24-04-2006 17:14:29
Saber si se esta ejecutando un programa externo jcaballeroo API de Windows 1 05-04-2005 18:01:58
local share = true programa colgado JoseQ Tablas planas 7 06-12-2004 22:40:07
Saber si un programa se está ejecutando Aprendiendo OOP 1 02-04-2004 00:32:46


La franja horaria es GMT +2. Ahora son las 10:29:50.


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