Fórum Como faço para verificar se meu sistema está inoperante?? #263319
23/12/2004
0
Ltres
Curtir tópico
+ 0Posts
24/12/2004
Nerdex
Mas, de uma forma, creio que o evento OnMouseMove é uma saída para detectar se o usuário está ´antenado´ para com a aplicação...
Gostei + 0
24/12/2004
Ltres
Gostei + 0
24/12/2004
Titanius
Defina um const
MaxTimeOut = 10; // tempo para bloquear a estação, em minutos.
Agora
procedure TForm1.PegarMensagens(var Msg: TMsg; var Pegou: Boolean); begin case Msg.Message of WM_LBUTTONDBLCLK, WM_MBUTTONDBLCLK, WM_RBUTTONDBLCLK, WM_LBUTTONDOWN, WM_MBUTTONDOWN, WM_RBUTTONDOWN, WM_NCLBUTTONDOWN, WM_NCMBUTTONDOWN, WM_NCRBUTTONDOWN, WM_DEADCHAR, WM_KEYDOWN, WM_SYSCHAR, WM_SYSKEYDOWN, WM_SYSDEADCHAR: begin TimeOut := 0; IdleTmr.Enabled := not IdleTmr.Enabled; IdleTmr.Enabled := not IdleTmr.Enabled; end; end; end;
depois um Timer, este verifica se o Tempo Idle é igual ao MaxTimeOut na const, se for, executa a opção!
procedure TForm1.IdleTmrTimer(Sender: TObject); begin Inc(TimeOut); if (TimeOut = MaxTimeOut) then begin //Zera os minutos inativos, se for igual ao número de minutos desejados TimeOut := 0; Bloquearestaodetrabalho1Click(Sender); IdleTmr.Enabled := not IdleTmr.Enabled; end; end;
Espero ter ajudado!
[]s
Gostei + 0
24/12/2004
Ltres
Gostei + 0
24/12/2004
Titanius
procedure TForm1.FormCreate(Sender: TObject); begin TimeOut := 0; // zera o contador do idle.... Application.OnMessage := PegarMensagens end;
:D
[]s
Gostei + 0
24/12/2004
Ltres
Gostei + 0
08/05/2005
Dpinho
WM_LBUTTONDBLCLK, WM_MBUTTONDBLCLK, WM_RBUTTONDBLCLK,
WM_LBUTTONDOWN, WM_MBUTTONDOWN, WM_RBUTTONDOWN,
WM_NCLBUTTONDOWN, WM_NCMBUTTONDOWN, WM_NCRBUTTONDOWN,
WM_DEADCHAR, WM_KEYDOWN, WM_SYSCHAR, WM_SYSKEYDOWN,
WM_SYSDEADCHAR:
utilizo Delphi 7
ajude por favor
Gostei + 0
08/05/2005
Ltres
Gostei + 0
08/05/2005
Dpinho
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
IdleTmr: TTimer;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure PegarMensagens(var Msg: TMsg; var Pegou: Boolean);
procedure IdleTmrTimer(Sender: TObject);
private
TimeOut :Integer;
{ Private declarations }
public
{ Public declarations }
end;
Const
MaxTimeOut = 1; // tempo para bloquear a estação, em minutos.
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.PegarMensagens(var Msg: TMsg; var Pegou: Boolean);
begin
case Msg.Message of
WM_LBUTTONDBLCLK, WM_MBUTTONDBLCLK, WM_RBUTTONDBLCLK,
WM_LBUTTONDOWN, WM_MBUTTONDOWN, WM_RBUTTONDOWN,
WM_NCLBUTTONDOWN, WM_NCMBUTTONDOWN, WM_NCRBUTTONDOWN,
WM_DEADCHAR, WM_KEYDOWN, WM_SYSCHAR, WM_SYSKEYDOWN,
WM_SYSDEADCHAR:
begin
TimeOut := 0;
IdleTmr.Enabled := not IdleTmr.Enabled;
IdleTmr.Enabled := not IdleTmr.Enabled;
end;
end;
end;
procedure TForm1.IdleTmrTimer(Sender: TObject);
begin
Inc(TimeOut);
if (TimeOut = MaxTimeOut) then
begin //Zera os minutos inativos, se for igual ao número de minutos desejados
TimeOut := 0;
ShowMessage(´mostrou o mouse´);
//Bloquearestaodetrabalho1Click(Sender);
IdleTmr.Enabled := not IdleTmr.Enabled;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TimeOut := 0; // zera o contador do idle....
Application.OnMessage := PegarMensagens
end;
end.
Estou tentando resolver este codigo, o normal seria depois de 1 minuto sem utilizar o mouse ou teclado retornase o messagebox, ma não acontece nada alguem pode ajudar?
Gostei + 0
09/05/2005
Marcelo Saviski
Gostei + 0
09/05/2005
Dpinho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)