Usuário com melhor resposta
Fechar janela se não mexer no mouse.

Pergunta
-
Respostas
-
Leonardo,
eu entendi a sua necessidade, porém não recomendo que você faça esse procedimento.
O usuário não mexer o mouse não necessariamente indica que ele não esteja usando o sistema.
Ele pode estar lendo um relatório, ou consultando uma planilha auxiliar para dar andamento no sistema.
O procedimento correto para enviar um usuário para a tela de login, depois de um período de inatividade é controlar a sessão do usuário.
Ou seja, após o Login você guarda uma Session["Usuario"] = objUsuario
Contendo algumas informações do usuário como ID, Nome, Email, Permissões.
E sempre q o usuário tentar interagir com o sistema, vc verifica se Session["Usuario"] == null
Caso afirmativo você redireciona para o Login, caso contrário deixa ele prosseguir.
Bons Códigos !
Att, Lucio Rogerio
Espero ter ajudado, se ajudei, por favor "Vote como Útil", e se resolvi seu problema, clique em "Propor como Resposta".- Sugerido como Resposta CarlosEduardo Ferreira terça-feira, 28 de julho de 2015 14:31
- Marcado como Resposta Marcos SJ sexta-feira, 31 de julho de 2015 18:55
segunda-feira, 27 de julho de 2015 17:15
Todas as Respostas
-
Boa tarde Leonardo!
Fiz um exemplo de como pode ser feito esta verificação, porém não sei se essa é a melhor maneira de ser feito, portanto aguarde outras respostas aqui no fórum, de repente aparecerá algo mais otimizado e correto de realizar esta verificação.
Segue abaixo o exemplo:
- Adicione um componente do Timer no seu formulário e altere a propriedade Interval para 10000 (ou seja os 10 segundos);
- No evento load do formulário principal inicie e timer;
- Crie uma variável booleana para analisar se houve movimentação;
- Ative o evento MouseMove da tela principal e faça a variável criada receber true se o evento foi disparado.
- E no evento Tick do Timer faça a verificação e tome a ação desejada, no meu caso exibo uma mensagem num messagebox.
Segue o code:
private void Form1_Load(object sender, EventArgs e) { timer1.Start(); } private void Form1_MouseMove(object sender, MouseEventArgs e) { movimentou = true; } bool movimentou; private void timer1_Tick(object sender, EventArgs e) { if (movimentou) { MessageBox.Show("Mexeu!"); timer1.Stop(); } else { MessageBox.Show("Não mexeu!"); timer1.Stop(); } }
Lembrando que é só um exemplo de como pode ser feito e não sei se é a melhor maneira de fazê-lo!
Abraço e espero ter ajudado.
Pablo Batista Cardoso
-
Boa tarde,
Por falta de retorno do usuário, esta thread será encerrada.
Caso seja necessário, por gentileza, abra uma thread nova.
Atenciosamente
Marcos Roberto de Souza Junior
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.