Olá pessoal =)
Aqui vou falar como detectar há quanto tempo a máquina está inativa.
Isso é útil para aplicações que precisam de muito processamento e ao mesmo tempo não podem atrapalhar o usuário.![Feliz](https://forum.guiadohacker.com.br/images/smilies/smile.png)
Só uma explicação rápida do algoritmo, porque não gosto de jogar códigos e não explicar =P
Basicamente, existem 2 jeitos (talvez mais) de se achar o tempo inativo de uma máquina. O primeiro deles seria colocar um hook no mouse e no teclado, mas isso seria extremamente invasivo e poderia causar bugs, alem disso teria de ser injetado em todos os processos.
As versões do Windows a partir do Windows 2000 possuem uma função na API que facilita nosso trabalho, a função GetLastInputInfo , ela nos fornece quando ocorreu o último evento de mouse ou teclado, com posse dessa informação, podemos pegar a hora atual e dela subtrair o tempo fornecido pela função, e temos o tempo em que a máquina está inativa.
Coloque no seu form um Label, chamado Label1 e um Timer (com 100 ms de intervalo), chamado Timer1.
Abaixo de Implementation, coloque a função que diz há quanto tempo a máquina está inativa:
Essa função retorna há quantos segundos a máquina está inativa.
Agora, no evento onTick do Timer1, coloque:
Pronto ![Sorridente](https://forum.guiadohacker.com.br/images/smilies/biggrin.png)
Espero que gostem.
Flws
Aqui vou falar como detectar há quanto tempo a máquina está inativa.
Isso é útil para aplicações que precisam de muito processamento e ao mesmo tempo não podem atrapalhar o usuário.
![Feliz](https://forum.guiadohacker.com.br/images/smilies/smile.png)
Só uma explicação rápida do algoritmo, porque não gosto de jogar códigos e não explicar =P
Basicamente, existem 2 jeitos (talvez mais) de se achar o tempo inativo de uma máquina. O primeiro deles seria colocar um hook no mouse e no teclado, mas isso seria extremamente invasivo e poderia causar bugs, alem disso teria de ser injetado em todos os processos.
As versões do Windows a partir do Windows 2000 possuem uma função na API que facilita nosso trabalho, a função GetLastInputInfo , ela nos fornece quando ocorreu o último evento de mouse ou teclado, com posse dessa informação, podemos pegar a hora atual e dela subtrair o tempo fornecido pela função, e temos o tempo em que a máquina está inativa.
Coloque no seu form um Label, chamado Label1 e um Timer (com 100 ms de intervalo), chamado Timer1.
Abaixo de Implementation, coloque a função que diz há quanto tempo a máquina está inativa:
Código:
function Inativo: Integer; var InpInfo: TLastInputInfo; begin InpInfo.cbSize := SizeOf(TLastInputInfo) ; GetLastInputInfo(InpInfo) ; Result := (GetTickCount - InpInfo.dwTime) DIV 1000; end;
Agora, no evento onTick do Timer1, coloque:
Código:
Label1.Caption:='Máquina inativa por ' + inttostr(Inativo) + ' segundos';
![Sorridente](https://forum.guiadohacker.com.br/images/smilies/biggrin.png)
Espero que gostem.
Flws
![Parabéns!](https://forum.guiadohacker.com.br/images/smilies/wink.png)
Comment