Galera, to precisando de uma rotina que detecte se a pessoa ficou sem mexer
o teclado ou o mouse por algum tempo. Se ficar, ela chama a tela de senha do
meu sistema, como se fosse uma proteção de tela.

Tava usando o código abaixo, mas de uma hora pra outra ele não ta
funcionando mais, alguem pode me dar uma mão? Não sei o que

aconteceu....to desesperado

Declaro as procedures:

    procedure AppIdle(Sender: TObject; var Done: Boolean);
    procedure AppNotIdle(var Msg: tagMSG; var Handled: Boolean);

No on Create do form principal

procedure TfrmSIAE0000.FormCreate(Sender: TObject);
begin
   Application.OnIdle      := AppIdle;
   Application.OnMessage   := AppNotIdle;
end;

procedure TfrmSIAE0000.AppIdle(Sender: TObject; var Done: Boolean);
var
   duracao : ttimer;
begin
   if (frmSIAE0000 <> nil) and (frmSIAE0000.Showing) then
   begin
      // Ativa o timer de bloqueio
      Tempo.Enabled := True; //duracao.Interval > 5000;
      Done          := True;
   end;
end;

procedure TfrmSIAE0000.AppNotIdle(var Msg: tagMSG; var Handled: Boolean);
begin
   // Ao mexer o mouse, ou pressionar qualquer tecla na aplicação
   // ... desativa o timer de bloqueio
   if (Msg.message = WM_MOUSEMOVE) or (Msg.message = WM_KEYDOWN) then
      Tempo.Enabled := false;
end;


procedure TfrmSIAE0000.TempoTimer(Sender: TObject);
begin
//   if (dmSIAEAP01.tblSIAECONFNM_EXIBIRSENHA.AsString = 'S') and
(dmSIAEAP01.tblSIAESENHNIVEL.AsInteger <> 0) then
  // begin
      if frmSIAESENH = nil then
      begin
         frmSIAESENH := tfrmSIAESENH.Create(self);
         frmSIAESENH.ShowModal;
         frmSIAESENH.Free;
         SetActiveWindow(Application.Handle);
      end;
  // end;
end;
      __    __
     /  \ /| |'-.
    .\__/ || |   |
_ /  `._ \|_|_.-'
| /  \__.`=._) (_
|/ ._/  |"""""""""|
|'.  `\ |         | Eduardo de Almeida Silva
;"""/ / |         | Kobra Sistemas
) /_/|  |.-------.| Desenvolvimento de Software
'  `-` ' "       "



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a