Logoff Automatico - 5ª Tentativa
Tenho um aplicativo em IB6. Cadastro uma senha para cada usuário. Pretendo fazer com q ao passar um determinado tempo(ex. 5 a 10 minutos) se o usuario NAO utilizar o sistema o proprio fara logoff automatico e entrara na tela de logon.
Tem alguem q possa passar-me um exemplo deste.
DESDE JA AGRADEÇO A SUA ATENÇÃO.
sds
Anderson
Tem alguem q possa passar-me um exemplo deste.
DESDE JA AGRADEÇO A SUA ATENÇÃO.
sds
Anderson
Agaraujo
Curtidas 0
Respostas
Wagnerpb
10/07/2003
dê uma olhada no código abaixo, é so uma idéia...
São utilizados dois componentes RXTIMER
.
.
.
.
implementation
{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If WTravaSistema = True then
begin
WTravaSistema:=False;
RxTimerEvent2Timer(Sender);
end
else
WTravaSistema:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WTravaSistema:=False;
end;
procedure TForm1.RxTimerEvent1Timer(Sender: TObject);
begin
WTravaSistema:=True;
end;
procedure TForm1.RxTimerEvent2Timer(Sender: TObject);
begin
If WTravaSistema = True then
Label1.Caption:=´Sistema travado!!!´
else
Label1.Caption:=´Sistema destravado!!!´;
end;
end.
Espero ter ajudado...
São utilizados dois componentes RXTIMER
.
.
.
.
implementation
{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If WTravaSistema = True then
begin
WTravaSistema:=False;
RxTimerEvent2Timer(Sender);
end
else
WTravaSistema:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WTravaSistema:=False;
end;
procedure TForm1.RxTimerEvent1Timer(Sender: TObject);
begin
WTravaSistema:=True;
end;
procedure TForm1.RxTimerEvent2Timer(Sender: TObject);
begin
If WTravaSistema = True then
Label1.Caption:=´Sistema travado!!!´
else
Label1.Caption:=´Sistema destravado!!!´;
end;
end.
Espero ter ajudado...
GOSTEI 0
E_gama
10/07/2003
Uma alternativa seria:
Primeiro: TODOS os seus formulários devem saber que o tempo determinado se esgotou, e devem fechar automaticamente;
Uma solução para isso, seria vc criar nos formulários uma procedure que responda a ´mensagens´ enviadas a ele. Ao receber a mensagem, o formulário faz tudo que é necessário para fechar-se automáticamente para evitar qualquer problema...
Segundo: No seu formulário principal, vc tem que colocar um componente TTimer para temporizar o tempo desejado para que seja feito o ´logoff´.
Quando o tempo estourar, ele verifica quais formulários estão abertos, e envia a eles a mensagem de ´fechamento´.
Preparei um pequeno exemplo, pegue-o no link abaixo:
[url]www.salesiano.com.br/egama/ClubeDelphi3.zip[/url]
Tem que pensar ainda em como detectar quando o usuário está ou não utilizando o sistema. Vou pensar em algo aqui e qq coisa lhe contacto...
Primeiro: TODOS os seus formulários devem saber que o tempo determinado se esgotou, e devem fechar automaticamente;
Uma solução para isso, seria vc criar nos formulários uma procedure que responda a ´mensagens´ enviadas a ele. Ao receber a mensagem, o formulário faz tudo que é necessário para fechar-se automáticamente para evitar qualquer problema...
Segundo: No seu formulário principal, vc tem que colocar um componente TTimer para temporizar o tempo desejado para que seja feito o ´logoff´.
Quando o tempo estourar, ele verifica quais formulários estão abertos, e envia a eles a mensagem de ´fechamento´.
Preparei um pequeno exemplo, pegue-o no link abaixo:
[url]www.salesiano.com.br/egama/ClubeDelphi3.zip[/url]
Tem que pensar ainda em como detectar quando o usuário está ou não utilizando o sistema. Vou pensar em algo aqui e qq coisa lhe contacto...
GOSTEI 0
Theuscr
10/07/2003
O código pra executar o Logoff do Windows pode ser achado na API do Windosw, mas já facilitarei seu trabalho:
ExitWindows(EWX_LOGOFF,EW_RESTARTWINDOWS);
Fácil, neh??? :roll:
ExitWindows(EWX_LOGOFF,EW_RESTARTWINDOWS);
Fácil, neh??? :roll:
GOSTEI 0
Motta
10/07/2003
De uma olhada no help em
TApplication.Idle , pode te ajudar
TApplication.Idle , pode te ajudar
GOSTEI 0
E_gama
10/07/2003
Utilizando a dica do amigo Motta, alterei o exemplo anterior
Baixe-o o arquivo que enviei no post anterior novamente para testar...
Faça o seguinte teste:
Quando vc executar a aplicação, ele vai abri um Form com um Botao e uma Caixa de Texto.
O Form tambem contem um Timer de 5 segundos...
ao clicar no botao, ira abrir um novo form em branco.
Se vc ficar esperando ele vai dar uma mensagem para fechar em 5 segundos (vc é claro pode configurar isso), mas se depois que clicar no botao, vc ficar digitando algo na caixa de texto (sem fechar o novo form que abriu), a aplicação seguira normalmente, mas se vc ficar mais do que 5 segundos sem digitar nada, a mensagem para fechar será mostrada novamente...
Baixe-o o arquivo que enviei no post anterior novamente para testar...
Faça o seguinte teste:
Quando vc executar a aplicação, ele vai abri um Form com um Botao e uma Caixa de Texto.
O Form tambem contem um Timer de 5 segundos...
ao clicar no botao, ira abrir um novo form em branco.
Se vc ficar esperando ele vai dar uma mensagem para fechar em 5 segundos (vc é claro pode configurar isso), mas se depois que clicar no botao, vc ficar digitando algo na caixa de texto (sem fechar o novo form que abriu), a aplicação seguira normalmente, mas se vc ficar mais do que 5 segundos sem digitar nada, a mensagem para fechar será mostrada novamente...
GOSTEI 0