usuário ausente?

08/12/2005

1

pessoal existe alguma forma de saber quando o usuário está ausente?


explicando melhor .....


o sistema está aberto e por algum motivo a pessoa teve que sair e deixou ativo. eu queria gerar uma ação assim que o programa identificar que ninguém está usando o computador.


Responder

Posts

você precisa identificar se o computador está uso, ou se o seu sistema está em uso?


Responder

08/12/2005

Crcam

na verdade se o computador está em uso pois quero proteger o sistema.


Responder

08/12/2005

Okama

Existe a proteção de tela do windows com senha, resolve ?


Responder

08/12/2005

Crcam

não ...
eu quero gewrar uma ação de logaut no meu sistema caso o usuário abandone o computaro ou eu reinicio ou eu fecho software .

minha preocupação é so com meu programa......


Responder

08/12/2005

Romulocpd

Realmente isso seria uma boa mesmo! Se o usuário sair da maquina o sistema poderia tipo ficar bloqueado.

Naquele componente ApplicationEvents tem acho que um OnIdle porém meu caso:

Eu tenho um projeto todo modular onde praticamente cada formulário do meu programa pertence a um pacote especifico. Isso é apra facilitar a manutenção (e realmente é mt melhor). O ApplicationEventos, com evento OnIdle, irá pegar também o tempo ocioso dos fomrularios no pacote?

Aqui mesmo na empresa é um problema sério, o cara vai no banheiro e qd ve tem gente na maquina. Mesmo que a regra geral seja bloquear a estação (estações WinXP ou Win2kProf) tem sempre um cabeçudo que esquece.

Valeu!


Responder

08/12/2005

Crcam

então como ficaria p/ gerar a ação? o meu não está em modulos o evento ficaria no form principal ...


Responder

08/12/2005

Romulocpd

Bom, eu nunca usei este componente, só sei de sua existencia. Tem que rodar na net atrás do funcioamento dele, ou no proprio help do Delphi pois ele é um componente nativo.


Responder

08/12/2005

Crcam

ai complicou pois já rodei atraz disso antes de recorrer no clube


Responder

08/12/2005

Crcam

pessoal não era bem isso que eu tinha em mente mas o resultado foi o esperado

vou diexar aqui p/ quem tiver com o mesmo problema de usuário relaxado....

NO FORMULÁRIO PRINCIPAL DE SUA APLICAÇÃO, AJUSTE A PROPRIEDADE KeyPreview PARA true,

INSIRA O COMPONENTE TTimer
E AJUSTE O INTERVALO PARA 1000 MILESEGUNDOS




---------------------------------------------

private
procedure ResetTimeOut;

public
{ Public declarations }
end;


------------------------------------

implementation

const

maxTimeOutValue = 300; // 300 segundos = à 5 minutos
var TimeOut : integer; // será incrementando pelo TTimer

{$R *.dfm}

procedure TForm1.ResetTimeOut;
begin
TimeOut := 0;
end;







-----------------------------------------------------

procedure TForm1.FormCreate(Sender: TObject);
begin
timeOut:= 0;
end;

-------------------------------------------------------


procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(TimeOut);
if TimeOut = MaxTimeOutValue then
begin
Timer1.enabled:= false;
close;
end;
end;


-------------------------------------------------------------


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ResetTimeOut;
end;


Responder

08/12/2005

Romulocpd

Olá,

Foi uma solução mesmo, mas você usou o evento OnIdle né? Pois não encontrei em seu código onde ele começaria a contar o tempo ocioso. Tipo, seo cara vai e digita algo então ele recomeça a contar.

Valeu!


Responder

08/12/2005

Crcam

na verdade o que fiz é toda vez que a aplicação for clicada ele reinicia o contador do timer ou seja ele aciona

procedure TForm1.ResetTimeOut;


Responder

09/12/2005

Jackson Gomes

Pessoal:

O componente para controle de acesso que comercializo tem essa função de TimeOut. Quem tiver interesse, pode dar uma olhadinha na página.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira