Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2006
Josue Josue is offline
Registrado
 
Registrado: oct 2006
Posts: 5
Poder: 0
Josue Va por buen camino
Identificador de programas en ejecución

Saludos a todos

Tengo una duda, quisiera saber si existe un evento o algo parecido que me pueda informar el momento en que se ejecuta un programa o es cerrado, esto debido a que quisiera hacer un control de todos los programas que se ejecutan en la computadora

La única manera que he encontrado es con un timer, pero el problema es que si un programa se ejecuta y es cerrado antes de que el timer se vuelva a activar el programa no se da cuenta.

Gracias a todos de antemano
Responder Con Cita
  #2  
Antiguo 20-12-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.293
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
Puedes colocar un refresco del timer suficientemente pequeño para que detecte el cambio.
Piensa que así se hace en aplicaciones que listan los procesos tipo ProcessMonitor, ProcessExplorer, TaskInfo,....
Incluso en muchas de ellas se configura la exploración cada x segundos.

Si no recuerdo mal, en los trucos del club hay uno para mostrar los procesos activos; Es cuestión de evaluar la lista de procesos cada intervalo y ver las diferencias.
__________________
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 20-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Estoy de acuerdo con neftali, si la idea es monitorizar los procesos, un proceso que empiece y termine en menos de medio segundo segundo (un intervalo muy aceptable para el timer del que hablábamos), o es una aplicación extraña o por lo menos con un funcionamiento atípico. La única razón que se me ocurre para necesitar detectar este tipo de aplicaciones fugaces es por motivos de seguridad, pero en ese caso, incluso si pudiéramos detectar su ejecución ¿que haríamos para protegernos?

Otra cosa, son las aplicaciones tipo "antivirus". Estas emplean toda una serie de "técnicas" para detectar, y en su caso bloquear la ejecución de un programa. Estas técnicas van desde crear drivers que actúan al nivel del kernel, hasta "parchear" las funciones CreateProcessA y CreateProcessW.

Si te sirve, hay un pequeño truco para detectar la ejecución de una aplicación, pero esta tiene que usar ventanas o al menos usar la librería user32.dll. Lo malo es que las aplicaciones de consola no usan esta librería, por lo tanto no las detectaríamos
Responder Con Cita
  #4  
Antiguo 20-12-2006
Josue Josue is offline
Registrado
 
Registrado: oct 2006
Posts: 5
Poder: 0
Josue Va por buen camino
Gracias.

Lo había pensado así, con el tiempo de un timer muy pequeño, pero tengo la duda de que esto pueda hacer que la computadora ocupe recursos de mas, como en el caso de los antivirus que hace que se alente el sistema.

El objetivo de este programa es verificar cuales son los programas mas usados, no tanto para impedir la ejecución de estos.

Gracias por su ayuda
Responder Con Cita
  #5  
Antiguo 20-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por Josue
Lo había pensado así, con el tiempo de un timer muy pequeño, pero tengo la duda de que esto pueda hacer que la computadora ocupe recursos de mas, como en el caso de los antivirus que hace que se alente el sistema.

El objetivo de este programa es verificar cuales son los programas mas usados, no tanto para impedir la ejecución de estos.
Pues entonces no te preocupes. Yo he hecho programas similares con intervalos de hasta 200 milisegundos y no consumen apenas recursos. Puedes hacer la prueba, crea tu programa y comprueba en el administrador de tareas el uso de la CPU.

Los antivirus ralentizan el sistema no por que usen timers, todo lo contrario, lo ralentizan porque interceptan y analizan cada una de la funciones del sistema, como CreateProccess, y en momentos determinados se ven sobrepasados de trabajo.
Responder Con Cita
  #6  
Antiguo 31-12-2006
fide fide is offline
Miembro
 
Registrado: oct 2006
Posts: 331
Poder: 18
fide Va por buen camino
Lightbulb Respondiendo

Ha, eso que tratas de hacer tiene muchas maneras de conseguirse. Una de ellas puede hacerse de la siguiente manera.

1 -- Al ejecutar tu aplicación, crear una lista en memoria de todos los procesos en ejecución.

2 – Siempre que un proceso se cierre y se ejecute nuevamente incrementas un contador para ese proceso y así sabrás cuantas veces se ejecutó.

Te recomiendo crear un record con

Nombre_de_App : String;
Cantidad_de_Ejecuciones : Integer;

A, el trucomania tiene algo que te puede servir.

Chao...
Responder Con Cita
  #7  
Antiguo 31-12-2006
fide fide is offline
Miembro
 
Registrado: oct 2006
Posts: 331
Poder: 18
fide Va por buen camino
Lightbulb Respondiendo

Ha, eso que tratas de hacer tiene muchas maneras de conseguirse. Una de ellas puede hacerse de la siguiente manera.

1 -- Al ejecutar tu aplicación, crear una lista en memoria de todos los procesos en ejecución.

2 – Siempre que un proceso se cierre y se ejecute nuevamente incrementas un contador para ese proceso y así sabrás cuantas veces se ejecutó.

Te recomiendo crear un record con

Nombre_de_App : String;
Cantidad_de_Ejecuciones : Integer;

A, el trucomania tiene algo que te puede servir.

Chao...
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
Identificador de llamadas... Sinaloense Varios 4 07-07-2007 21:31:51
Identificador de llamadas en .NET edalmasso Varios 1 18-05-2006 17:02:35
Identificador no declarado Enan0 Varios 2 16-02-2005 18:58:51
Ayuda con Ejecución de programas creados con Kylix 3 Enterprise Trial darkone2k3 Lazarus, FreePascal, Kylix, etc. 0 18-11-2003 15:58:56
Identificador de llamadas.. dmariscal Varios 2 10-11-2003 21:39:45


La franja horaria es GMT +2. Ahora son las 18:40:05.


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