Well achieved, there is only one drawback, it does not record mouse movement as activity, just click, changing fields, etc..
The code is big:
Form 'system'
public Timer relogio; // cria timer
public int contador = -1; // contador (conta o tempo em segundos)
public bool atv = false; // booleano para controle do formulario de login
// abaixo do InitializeComponent();
relogio = new Timer(); // cria uma instancia de time
relogio.Interval = 1000; //depermina o tempo (assim fica em segundos)
relogio.Enabled = true; // ativa o time
this.relogio.Tick += new System.EventHandler(this.relogio_Tick); // cria um metodo de controle
private void Interface_Click(object sender, EventArgs e)
{//redefine contador quando há clique no formulario (deve-se criar isso para cada campo de formulario, desde menu a campos de texto)
contador = -1;
}
private void relogio_Tick(object sender, EventArgs e) //controlador de time
{
if (contador == 10) // quando o contador chegar a 10 (10 segundos)
{
if (atv == false)//se a tela de login nao estiver em execução
{
this.Enabled = false;//desabilita o formulario 'sistema'
LoginBloq nvLoginBloq = new LoginBloq(); //cria uma instancia do login
nvLoginBloq.Show(); // abre a instancia
}
else{}//se atv = true (se formulario 'login' estiver ativo não faz nada)
}
else if(contador > 10) //se contador for mais que 10 (10 segundos)
{
this.relogio.Enabled = false;//desabilita relogio
}
contador++;// a cada vez ele que executa o metodo (sempre) ele aumenta contador
}
Form 'login'
//após o InitializeComponent();
Login.nvInterface.atv = true; // fala que esta ativo (para nao ficar criando novos form 'login')
// após ele permitir o login (ao clicar no botao de login)
this.Enabled = false; // desabilita a si mesmo
Login.nvInterface.atv = false; //
Login.nvInterface.contador = -1; //rededine o contador (em segundos)
Login.nvInterface.relogio.Enabled = true; //ativa o time novamente
Login.nvInterface.Show(); //mostra novamente o formulario 'sistema'
Login.nvInterface.Enabled = true; // ativa (desbloqueia) formulario 'sistema'
this.Visible = false; // torna-se invisivel
//as linhas Visible e Enabled, são necessárias nessa ordem, se não ele buga
Login.nvInterface - is an instance created in another Login form (the main one), to display the 'system' form'
If you have any form before the 'system' (as is the case)
Previous form
// antes de tudo
public static Interface nvInterface = new Interface(); //criar uma instancia publica do formulario 'sistema'
// depois de InitializeComponent();
nvInterface.relogio.Enabled = false; //desativa relogio do formulario 'sistema'
// no metodo do botão que vai para o formulario 'sistema' ou depois do InitializeComponent(); do formulario 'sistema'
nvInterface.relogio.Enabled = true; //ativa relogio do formulario 'sistema'
// assim ele 'trava' o time da instancia ate que ela seja exibida
Can you share the code structure? Have you tried Timer?
– Felipe Douradinho
try
IEnumerator
I think it should work.Example– Hebert Lima
I got it here, but it only records click or modification of the fields as activity, mouse movement is discarded, ie if the user is just moving the mouse in the form, when it reaches the team it will block.. I’ll post the code I used here
– Leonardo