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-05-2004
muli muli is offline
Miembro
 
Registrado: jun 2003
Ubicación: A Coruña
Posts: 197
Poder: 21
muli Va por buen camino
Capturar ninguna acción

Necesito capturar mientras se esté ejecutando mi programa si existe actividad en el ordenador, es decir, como si yo fuera a lanzar el salvapantallas, que no es el caso, es para que pasado un tiempo sin trabajar en el ordenador se salga fuera del programa automáticamente.

Gracias.

Saludos
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE.
Responder Con Cita
  #2  
Antiguo 20-05-2004
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
Busca acerca del evento OnIdle del objeto TApplication.

// Saludos
Responder Con Cita
  #3  
Antiguo 21-05-2004
muli muli is offline
Miembro
 
Registrado: jun 2003
Ubicación: A Coruña
Posts: 197
Poder: 21
muli Va por buen camino
ok, he puesto lo siguiente y parece que funciona es poco chapucero, pero!

procedure TForm1.MyIdleHandler(Sender: TObject; var Done: Boolean);
begin
Timer1.Enabled:=False;
Timer1.Enabled:=True;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnIdle:= MyIdleHandler;
end;

En el timer tengo el tiempo que quiere el usuario mantener activa la aplicación y cuando llega a cumplirse ese tiempo


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=False;
ShowMessage('han pasado x tiempo sin hacer nada');
utiles.CierraTablas(Datos) // Cierro todas las fuentes de datos
Halt; // cierro el programa
end;

Pero, yo quisiera complicarlo un poco más, desearía capturar también el tiempo de inactivad en el propio windows, tal y como hace el salvapantallas.
Alguna idea?

Gracias, y Saludos
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE.
Responder Con Cita
  #4  
Antiguo 21-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
muli, intenta encerrar tu código en las etiquetas [ Delphi ] y [ / Delphi ] (pero sin espacios), y tampoco estaría de mal que identases tu código.

Para que veas que tal queda:
Código Delphi [-]
procedure TForm1.MyIdleHandler(Sender: TObject; var Done: Boolean);
  begin
    Timer1.Enabled:=False;
    Timer1.Enabled:=True;
  end;


procedure TForm1.FormCreate(Sender: TObject);
  begin
    Application.OnIdle:= MyIdleHandler;
   end;

procedure TForm1.Timer1Timer(Sender: TObject);
  begin
    Timer1.Enabled:=False;
    ShowMessage('han pasado x tiempo sin hacer nada');
    utiles.CierraTablas(Datos) // Cierro todas las fuentes de datos
    Halt; // cierro el programa
  end;
__________________
:)
Responder Con Cita
  #5  
Antiguo 21-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Lo he identado a mano, a si que se van a ver errores de espacio seguro.
__________________
:)
Responder Con Cita
  #6  
Antiguo 21-05-2004
muli muli is offline
Miembro
 
Registrado: jun 2003
Ubicación: A Coruña
Posts: 197
Poder: 21
muli Va por buen camino
Me parece muy bonito, pero yo espero algo funcional no bonito, seguro que a la gente que le interesa el post le da igual si está en azul o en negrita lo que quiere es que funcione y aprender de la respuesta.

No me interpretes mal, pero me parece que existen cosas mas importantes que la belleza a la hora de contestar.
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE.
Responder Con Cita
  #7  
Antiguo 22-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Muli, podrías tambien poner otra aplicación como salvapantallas, y que cuando se ejecutase, enviase un mensaje a tu aplicación con la cual esta se cierra. Después, la aplicación "salvapantallas" ejecutaría el verdadero salvapantallas y se cerraría...

No se, es una posiblilidad, no?
__________________
:)
Responder Con Cita
  #8  
Antiguo 22-05-2004
muli muli is offline
Miembro
 
Registrado: jun 2003
Ubicación: A Coruña
Posts: 197
Poder: 21
muli Va por buen camino
ok, es una buena idea, puedo tener un proceso corriendo siempre en la aplicación que detecte si está el salvapantallas activado y si éste está activado cerrar la aplicación, lo que pasa es que obligo al usuario a tener un salvapantallas, y no se si estando la aplicación por ejemplo minimizada sigue corriendo el proceso.

Saludos. Gracias.
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE.
Responder Con Cita
  #9  
Antiguo 22-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
O puedes poner dicho proceso como salvapantalla, y que al activarse, cierre la aplicación y después, si el usuario quiere, ejecutar un salvapantallas.
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


La franja horaria es GMT +2. Ahora son las 04:21:21.


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