Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sitko

Tela de Acesso - Em Delphi

Recommended Posts

Olá Pessoal,Preciso fazer com que meu sistema chame a tela de logon do usuário automaticamente depois de um determinado tempo que o sistema esteja inativo, isso seria muito util, pois muitos usários esquecem suas maquinas com o sistema logados em seus nomes dando total acesso a outros usuários sem que efetuem o logon.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca um timer no formulário de senha......vai ser facil....

Compartilhar este post


Link para o post
Compartilhar em outros sites

até ae é facil, o problema é eu detectar que o sistema esta inativo ou seja ninguem esta usando o mesmo, pois a partir desse momento o tempo começa a contar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro elabore uma rotina leve...depois faça o segunte...coloque o timer funcionando...sempre que alguma coisa for mudada você começa a contar denovo.....sacou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Proteus,O que você se refere alguma coisa for mudada? se for em questão a dados, impossivel, pois o sistema esta em rede e nesse caso não daria certo.Valeus...

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando o sistema está inativo você não mexe nem no mouse.. e nem no teclado... certo???tipo quando tá em modo de espera...pode ser que estes eventos sirvam pra você

Compartilhar este post


Link para o post
Compartilhar em outros sites

a minha ideia não era essa....a minha ideia era... no on key press e no om mouse move zerar o contador....num é bem mais simples ????só tem um probleminha...se o kra abrir o seu sistema. e sem fecha-lo for digitar um testo no word..... o programa não vai detectar nenhuma tecla e vai continuar contando.....mas pode ser que te atendamas se for do seu interesse eu posso pesquisar isso...mas com certeza você vai ter que recorrer a uma api....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah cara eu uso da seguinte maneira: Coloco um Timer no Form principal e deixo ativo contando, toda vez que um outro formulário é chamado ou fechado eu zero a contangem, entretando se nenhum form foi aberto, ou form é aberto e ficar muito tempo, eu deixo 2 minutos, daí chamo o form de logon.A idéia de keydown ou mosemove é mais precisa, mas em alguns forms não dá pra pegar captar pq outros componentes ficam focados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então mostra...eu não sei quanto ao Wicked, mas eu tô curioso pra saber como ficou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei um Timer no formulário principal com o seguinte procedimento:procedure TFrmPrincipal.TAtivaTempoTimer(Sender: TObject);begin if CheckBox2.Checked = True then Begin V_TempoPercorrido := V_TempoPercorrido + 1; if V_TempoPercorrido >= 300 then if FrmLogon = Nil then begin V_TempoPercorrido := 0; FrmLogon := TFrmLogon.Create(Application); FrmLogon.ShowModal; FrmLogon.Release; end; end; if FrmLogon <> Nil then V_TempoPercorrido := 0;end;Em todos os forms do projeto nos enventos OnKeyPress e OnMouseMove mando a variavel V_TempoPercorrido := 0 ou seja, em qualquer tecla que se teclar ou qualquer movimento do mouse a variavel zera iniciando a contagem do timer e caso não se tenha nenhum tipo de ação o sistema chama a tela de logon automaticamente após o tempo determinado vencer.Caso o form tenha obejtos sobre ele tipo panel, você terá que colocar o comando sobre o evento do panel.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae pessoal, gostei do assunto e gostaria de dizer que tambem possuo uma rotina essencial para este fundamento, muito boa mermo. Usando tambem um Try Icon.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei um Timer no formulário principal com o seguinte procedimento:

 

procedure TFrmPrincipal.TAtivaTempoTimer(Sender: TObject);

begin

if CheckBox2.Checked = True then

Begin

V_TempoPercorrido := V_TempoPercorrido + 1;

if V_TempoPercorrido >= 300 then

if FrmLogon = Nil then

begin

V_TempoPercorrido := 0;

FrmLogon := TFrmLogon.Create(Application);

FrmLogon.ShowModal;

FrmLogon.Release;

end;

end;

if FrmLogon <> Nil then

V_TempoPercorrido := 0;

end;

 

Em todos os forms do projeto nos enventos OnKeyPress e OnMouseMove mando a variavel V_TempoPercorrido := 0 ou seja, em qualquer tecla que se teclar ou qualquer movimento do mouse a variavel zera iniciando a contagem do timer e caso não se tenha nenhum tipo de ação o sistema chama a tela de logon automaticamente após o tempo determinado vencer.

Caso o form tenha obejtos sobre ele tipo panel, você terá que colocar o comando sobre o evento do panel.

 

Abraços.

 

 

O código do nosso amigo está beleza!

 

Só falta 2 detalhes se não da erro declarar a variavel V_TempoPercorrido: integer; e o segundo é

begin

if CheckBox2.Checked = True then

Begin

V_TempoPercorrido := V_TempoPercorrido + 1;

if V_TempoPercorrido >= 300 then

if FrmLogon = Nil then

begin

V_TempoPercorrido := 0;

FrmLogon := TFrmLogon.Create(Application);

FrmLogon.ShowModal;

FrmLogon.Release;

FrmLogon:=Nil;// Se não ele não executa novamente o código.

end;

end;

if FrmLogon <> Nil then

V_TempoPercorrido := 0;

end;

 

 

Mais no geral o código funciona perfeito!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.