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 26-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad

Hola estoy probando la funcion de Inactividad GetlastinputInfo, pero habia puesto cada 7200 segundos que cierre el programa (2 horas de inactividad), con un Timer 1000. pero no me hace caso lo probe con el caption (mas abajo el ejemplo) a los 300 segundos cierra todo sin ningun close cuando trabaja la funcion que va contando, llega ese contador a 300 y se cierra, que puede ser?.
Código Delphi [-]
function SecondsIdle: DWord;
var
  liInfo: TLastInputInfo;
begin
  liInfo.cbSize := SizeOf(TLastInputInfo) ;
  GetLastInputInfo(liInfo) ;
  Result := (GetTickCount - liInfo.dwTime) DIV 1000;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := Format('System IDLE last %d seconds', [SecondsIdle]) ;
end;

Última edición por ecfisa fecha: 26-08-2014 a las 20:44:07. Razón: cambiar etiqueta [quote] x [delphi]
Responder Con Cita
  #2  
Antiguo 26-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, recuerda poner títulos descriptivos a tus preguntas, gracias
Responder Con Cita
  #3  
Antiguo 26-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código Delphi [-]
function SecondsIdle: DWord; var liInfo: TLastInputInfo; 
begin 
  liInfo.cbSize := SizeOf(TLastInputInfo);
  GetLastInputInfo(liInfo);
  Result := (GetTickCount - liInfo.dwTime) DIV 1000;
end; 

procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
  Label1.Caption := Format('System IDLE last %d seconds', [SecondsIdle]);
end;
Responder Con Cita
  #4  
Antiguo 26-08-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola shoulder.

Ví que te tomaste mucho trabajo en la presentación del código, pero lamentablemente las etiquetas [quote]...[/quote] quitan todo el formato. Por otro lado te recuerdo que las etiquetas [delphi]...[/delphi] hacen automáticamente la tarea que realizaste a mano.

Saludos

Edito: (ya lo había notado Casimiro... )
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 26-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad - Se cierra despues de 300 segundos

Perdon no me di cuenta.
Responder Con Cita
  #6  
Antiguo 26-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad - Se cierra despues de 300 segundos

Probe y exactamente a los 300 segundos se cierra aunque escriba un valor mas alto en el Timer1, la pantalla se ve mas tenue y se cierra el prg.
Responder Con Cita
  #7  
Antiguo 26-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Qué es TLastInputInfo?
Responder Con Cita
  #8  
Antiguo 26-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad - Se cierra despues de 300 segundos

Sabes que no se, la funcion la copie de Internet, decis que sea un valor predefinido a 300 segundos de maximo? . Trabajo con windows 7 y delphi 7.
Gracias.
Responder Con Cita
  #9  
Antiguo 26-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Que yo sé que tú no sabes?
Lo siento mucho, amigo, pero no tenemos una bola de cristal para saber de dónde lo has copiado, qué hace, para qué sirve, ni siquiera tenemos tu código completo para intentar averiguarlo.
Me ha hecho gracia tu comentario, creo que deberías leer nuestra otra guía de estilo.
Responder Con Cita
  #10  
Antiguo 27-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad

Hola la funcion GetlastInput te devuelve en milisegundos el tiempo que esta inactivo el windows sin usar teclas y mouse, de internet copie la funcion para delphi. Les paso los links.
http://www.michael-puff.de/Programmierung/Delphi/Code-Snippets/GetLastInputInfo.shtml

http://www.swissdelphicenter.ch/torr...de.php?id=2018

http://neftali.clubdelphi.com/?tag=tips

Copio tal cual como pueden ver en los ejemplos o como escribi mas arriba, pero al llegar al segundo 300 de espera se cierra la aplicacion y no se porque independientemente de lo que escriba en el timer.

Espero haber cumplido la regla de estilos esta vez...

Última edición por shoulder fecha: 27-08-2014 a las 00:39:11.
Responder Con Cita
  #11  
Antiguo 27-08-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola shoulder.
Cita:
Empezado por shoulder Ver Mensaje
...habia puesto cada 7200 segundos que cierre el programa (2 horas de inactividad), con un Timer 1000. pero no me hace caso...
Fijate si de este modo hace lo que buscas:
Código Delphi [-]
...
implementation

const
  DOS_HORAS = 2{hr} * 3600{seg} * 1000{ms};

procedure TForm1.FormCreate(Sender: TObject);
begin
  with Timer1 do
  begin
    Interval:= 1000{1 seg};
    Enabled := True;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  LastInputInfo: TLastInputInfo;
begin
  ZeroMemory(@LastInputInfo, SizeOf(LastInputInfo));
  LastInputInfo.cbSize:= SizeOf(TLastInputInfo);
  Win32Check(GetLastInputInfo(LastInputInfo));
  if GetTickCount - LastInputInfo.dwTime >= DOS_HORAS then
  begin
    Timer1.Enabled:= False;
    MessageBox(0,'La aplicación estuvo 2 horas inactiva y se cerrará', '', MB_OK);
    Application.Terminate;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 27-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad - Se cierra despues de 300 segundos

Gracias lo probe pero me pasa los mismo a los 300 segundos se cierra el prg, no se que mas revisar.

Es decir nunca pasa por
Cita:
if GetTickCount - LastInputInfo.dwTime >= DOS_HORAS then
begin
Timer1.Enabled:= False;
MessageBox(0,'La aplicación estuvo 2 horas inactiva y se cerrará', '', MB_OK);
Application.Terminate;
end;
Cuando el valor interno de inactividad de Windows llega a 300 segundos me cierra el programa si uso este tipo de funciones.

Última edición por shoulder fecha: 27-08-2014 a las 16:19:50.
Responder Con Cita
  #13  
Antiguo 27-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por shoulder Ver Mensaje
Gracias lo probe pero me pasa los mismo a los 300 segundos se cierra el prg, no se que mas revisar.
Cuando el valor interno de inactividad de Windows llega a 300 segundos me cierra el programa si uso este tipo de funciones.
¿Y cómo lo sabes si no puedes pulsar ninguna tecla ni mover ratón?
De todas formas, si no pones todo el código fuente para que lo veamos, por si acaso tienes otra cosa en otro sitio.
Responder Con Cita
  #14  
Antiguo 27-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad - Se cierra despues de 300 segundos

Hola, me doy cuenta porque se me cerraba siempre a los 5 minutos, entonces lo que hice con un edit me refrescaba los segundos que iban pasando de inactividad y a los 300 se cierra el prg.
El codigo exactamente que use, el que me paso ecfisa mas arriba, no cambie nada, probe antes con los otros codigos que pase los links en los post anteriores y es igual. Sera un tema del Windows 7?
Responder Con Cita
  #15  
Antiguo 27-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Que windows cierre tu programa?, no creo.
Responder Con Cita
  #16  
Antiguo 27-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por shoulder Ver Mensaje
El codigo exactamente que use, el que me paso ecfisa mas arriba, no cambie nada
O sea, que todo tu programa es solamente el código que ha puesto ecfisa.
Responder Con Cita
  #17  
Antiguo 27-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad - Se cierra despues de 300 segundos

Si como no me funciona ningun link y siempre me hace lo mismo lo probe como un nuevo programa.
Sera algo entre delphi 7 y windows 7?.
Responder Con Cita
  #18  
Antiguo 27-08-2014
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Inactividad - Se cierra despues de 300 segundos

Solucione el problema era un ERROR mio, probandolo solo funciono, yo tenia una ventana password que abre una prinicipal ahi tenia un timer corriendo que dicha ventana no se mantuviera abierta mayor a 300 segundos, cuando entraba a la ventana principal aunque la ventana password no se veia mas seguia corriendo ese timer.

Gracias a todos.
Responder Con Cita
  #19  
Antiguo 27-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por eso te comentaba que pusieras todo el código y si no tenías nada más funcionando.
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
Detectar inactividad en una Aplicación shoulder Varios 4 08-04-2013 21:53:31
Aplicacion con contador de inactividad Kenobi Varios 1 19-03-2009 17:17:49
Cierre de Aplicacion por inactividad Confucio Varios 4 22-04-2008 20:58:41
Cerrar ventana por inactividad mancurnino Varios 2 11-03-2008 01:49:32
Desconexion de la aplicacion por inactividad mamen .NET 8 14-07-2004 08:32:42


La franja horaria es GMT +2. Ahora son las 07:29: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