Hola a todos.
Siento no haber contestado antes, pero estoy mas liado que un gato con un obillo de lana.
Al final lo he implementado como tu dices andres, pero ahorrandome esas variables.
he creado una rutina que se llama Actualiza ultimo acceso
Código:
procedure TDTM.ActualizaUltimoAcceso();
begin
// bloqueo implementado mediante timer
Timer1.Interval:= gl.Bloqueo.Minutos*60000;
timer1.Enabled:=gl.Bloqueo.AutoBlock ;
end;
captando los mensajes de la aplicación
Código:
if ((Msg.message >= WM_KEYFIRST) AND (Msg.message <= WM_KEYLAST)) OR
((Msg.message >= WM_MOUSEFIRST) AND (Msg.message <= WM_MOUSELAST)) then
dtm.ActualizaUltimoAcceso ;
Así lo que hago es reiniciar el timer con el tiempo que haya establecido el usuario. Se supone que esas instrucciones las hará cuando el usuario no esté haciendo nada, y son solo 2 instrucciones.
Por otra parte, el Ontimer se ejecutará 1 vez cada 4 o 5 minutos y lo unico que hace es presentar la pantalla de bloqueo deshabilitando el timer hasta que se vuelva a Reconectar el usuario.
Quizás esté recargando el Applicantion.OnMessage, pero me olvido de saber cuando ha sido el UltimoAcceso del Usuario y si ha ocurrido el Evento o no.
Como bien decias esta es otra idea, que cada cual coja la que mas le guste
SALUDOS A TODOS y MUCHAS GRACIAS por el interés que han prestado.