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 14-12-2006
Avatar de dblx
dblx dblx is offline
Miembro
 
Registrado: abr 2006
Posts: 28
Poder: 0
dblx Va por buen camino
verificar si una aplicacion esta corriendo

Hola amigos del foro...

Tengo una duda, quiero desarrollar una pequeña aplicación que cuente el tiempo que una aplicación dura corriendo, ejemplo: un usuario llega a la maquina inicia sesión, inicia CorelDraw 13, firefox 2.0, y Windows Messenger Live 8.0... Ahora lo que quiero es una función que me cuente el tiempo que dura cada aplicación corriendo, para saber si la persona pasa mas tiempo navegando o trabajando en el Corel, ¡AH! y otra cosa que se inicie cuando Windows inicie y que no salga el boton de la aplicación en la barra de tareas ni en la barra donde esta el reloj, sino que muestre solo cuando yo quiera ejecutando un comando en el cmd, sería posible hacer esto en delphi 7, se programar en delphi mas no se que funciones podria usar para esto seguro debe ser sencillo...

Gracias...

Última edición por dec fecha: 15-12-2006 a las 02:22:40.
Responder Con Cita
  #2  
Antiguo 14-12-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,

antetodo respeta la guía de estilo, no debes hacer más de una pregunta sobre distintos temas en un mismo hilo, ya que eso no ayuda a posteriores búsquedas a gente que tenga el mismo problema / duda que tú.

Está bien que expongas tus objetivos, pero de forma separada. Tampoco quieras que aquí te hagamos ese trabajo, lo suyo es que vayas haciendo y cuando te encuentres estancado preguntes.

Respecto a tu duda.
Es posible, creo que no hay inconveniente en casi ningún punto. Y el nivel de dificultad, depende, cada apartado depende unos son más sencillos y otros más difíciles.

Espero replantees tu pregunta, para que entonces te podamos ayudar.

Saludos
Responder Con Cita
  #3  
Antiguo 14-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
Te recomiendo para esto hacer un servicio, no se mostrara ni en la barra de tareas ni en ningún otro lado, solo en la lista de procesos, pero eso es inevitable. Aunque si una persona va a ser investigada, a mi me parece que lo mas correcto es que se le informe primero, de hecho creo que podría ser incluso ilegal hacer eso si no se le informa primero, da igual que sea tu ordenador y el trabaje para ti, aunque si hay algún abogado por aquí que me corrija si me equivoco.

Con respecto a ver que programas utiliza, solamente tendrías que revisar periódicamente los procesos en ejecución, y a partir de hay calcular el tiempo que esta encendido cada programa.
Responder Con Cita
  #4  
Antiguo 14-12-2006
Avatar de dblx
dblx dblx is offline
Miembro
 
Registrado: abr 2006
Posts: 28
Poder: 0
dblx Va por buen camino
Bicho disculpa lo de la guia de estilo, pero soy novato en estos de los foros, solo acostumbro a ver mas no a dejar mensajes, y busque bastante y no encontre sobre este tema, por eso todas las preguntas... y no quiero que me hagan el trabajo si no solo necesito las funciones necesarias para desarrollar la aplicacion, solo eso pido... Gracias y disculpas
Responder Con Cita
  #5  
Antiguo 14-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.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 seoane
...solamente tendrías que revisar periódicamente los procesos en ejecución, y a partir de hay calcular el tiempo que esta encendido cada programa.
Aunque piensa que eso te dará el tiempo que el programa está abierto, que no es lo mismo que el programa que se está utilizando. Si se va a comer y se deja abiertas la ventana del Explorer y la ventana del Corel, no estará trabajando en ninguna de las dos, en cambio en ambas estará contando el tiempo.

"Discernir" en cual de ellas está trabajando realmente se me antoja más difícil; No se si utilizando estrategias similares a las de los KeyLoguers, no se si detetando las ventanas que están en primer plano (se me acaba de ocurrir), no se si detetando el nivel de CPU del proceso (se me acaba de ocurrir y además no creo que funcione), no se si hay en Windows alguna forma de saber la Ventana (y por ende) la aplicación activa en cada momento (creo que sí debe haberla), o algua otra que no se me ocurre; Aunque ninguna de ellas me parece sencilla.

En el tema de "espiar" opino de forma similar a Seoane.
__________________
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 14-12-2006
Avatar de dblx
dblx dblx is offline
Miembro
 
Registrado: abr 2006
Posts: 28
Poder: 0
dblx Va por buen camino
Neftali, la persona que tengo en la maquina trabajando no se para de ahii, desde las 8:00 am hasta las 12:00 pm, la aplicación que quiero desarrollar es para monitorear si realmente me esta trabajando en el corel... por eso el nunca va a saber que esa aplicación esta instalada...
Responder Con Cita
  #7  
Antiguo 14-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.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 dblx
Neftali, la persona que tengo en la maquina trabajando no se para de ahii, desde las 8:00 am hasta las 12:00 pm, la aplicación que quiero desarrollar es para monitorear si realmente me esta trabajando en el corel... por eso el nunca va a saber que esa aplicación esta instalada...
???????
O yo no te entiendo o tú no me entendiste.
__________________
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
  #8  
Antiguo 14-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 Neftali
"Discernir" en cual de ellas está trabajando realmente se me antoja más difícil; No se si utilizando estrategias similares a las de los KeyLoguers, no se si detetando las ventanas que están en primer plano (se me acaba de ocurrir), no se si detetando el nivel de CPU del proceso (se me acaba de ocurrir y además no creo que funcione), no se si hay en Windows alguna forma de saber la Ventana (y por ende) la aplicación activa en cada momento (creo que sí debe haberla), o algua otra que no se me ocurre; Aunque ninguna de ellas me parece sencilla.
Lo que se me antoja mas difícil en este caso es definir lo que es trabajo y no lo es, me explico, es solo trabajo cuando se teclea o se mueve el ratón, o también lo se si esta leyendo un texto en pantalla, o se esta realizando una tarea que necesita un procesamiento largo. Como dice neftali, como podríamos distinguir si alguien esta leyendo un manual, o editando un vídeo, o se fue a tomar un café.

La cosa seria sencilla si aceptásemos que trabajar implica movimiento de ratón o pulsaciones de teclado, un simple hook a nivel global, colocado en una dll no tiene problemas en saber sobre que proceso se esta "trabajando" de hecho seria algo trivial.

La eterna duda, se puede estar trabajando sin moverse, solo pensando ...
Responder Con Cita
  #9  
Antiguo 14-12-2006
Avatar de dblx
dblx dblx is offline
Miembro
 
Registrado: abr 2006
Posts: 28
Poder: 0
dblx Va por buen camino
Neftali, para mi estaria bien detectar las ventanas de estas aplicaciones, en visual basic es algo como AppActive ó algo asi, quiero una funcion paralela pero en delphi, que me detecte la ventana de la aplicacion y yo vere como inicio un contador de tiempo... Gracias
Responder Con Cita
  #10  
Antiguo 15-12-2006
kalisto kalisto is offline
Miembro
 
Registrado: jul 2004
Posts: 62
Poder: 20
kalisto Va por buen camino
titulo de la ventana activa

Código Delphi [-]
function VentanaActiva: String;
var  PC: Array[0..$FFF] of Char;
     Wnd : Thandle;
begin
    {$IFDEF Win32}
    Wnd := GetForegroundWindow;
    {$ELSE}
    Wnd := GetActiveWindow;
    {$ENDIF}
    SendMessage( Wnd , $000D , $FFF , LongInt( @PC ) ); //$000D es el WM_GETTEXT
    Result := PC;
end;
Responder Con Cita
  #11  
Antiguo 15-12-2006
Avatar de dblx
dblx dblx is offline
Miembro
 
Registrado: abr 2006
Posts: 28
Poder: 0
dblx Va por buen camino
Kalisto, gracias por responder, el codigo que colocaste...

Como lo uso man??? que es $FFF... $000... ??? direcciones de memoria???
Responder Con Cita
  #12  
Antiguo 15-12-2006
Avatar de dblx
dblx dblx is offline
Miembro
 
Registrado: abr 2006
Posts: 28
Poder: 0
dblx Va por buen camino
[b]kalisto[\B], gracias nuevamente por tu codigo, pero solo me detecta el "caption" de la ventana que este activa en el momento, no me referia a eso, quiero que mi aplicacion detecte el "exe" que este corriendo, es decir cuando "firefox.exe" se ejecute mi aplicación dispare un timer que cuente cuanto tiempo dura corriendo, y no solo la que este activa...

Gracias...
Responder Con Cita
  #13  
Antiguo 15-12-2006
Avatar de dblx
dblx dblx is offline
Miembro
 
Registrado: abr 2006
Posts: 28
Poder: 0
dblx Va por buen camino
Kalisto... aunque pensandolo bien aqui viendo, me di cuenta que cuando una ventana esta activa es porque se esta trabajando sobre ella, disculpa amigo, me diste un gran fragmento de código muy bueno gracias de verdad, doy por terminada mi duda... muchas gracias
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
Saber si MySQL esta corriendo DTAR Varios 11 22-11-2006 19:12:43
esta ejecutandose una aplicacion en NT? jmbarrio API de Windows 5 13-01-2005 11:49:04
Aplicación corriendo como servicio verm83 Varios 2 15-04-2004 12:34:28
Re... .... corriendo los objetos Anubys OOP 7 19-12-2003 19:53:09
Verificar si esta instalada una fuente victork_py Varios 2 22-10-2003 20:23:39


La franja horaria es GMT +2. Ahora son las 15:34:35.


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