Batch: Como executar um programa quando o computador está ocioso e parar quando usado?

4

Eu preciso executar um lote do Windows (ou qualquer outro software de linha de comando faria bem) que iria executar um programa quando o computador ficou ocioso por um minuto e pará-lo quando é usado. Eu obviamente deveria começar de novo quando estiver ocioso novamente.

Alguma ideia? Não foi possível encontrar nada que não use a GUI.

    
por user2723297 12.01.2014 / 00:05

2 respostas

6

Este é um trabalho perfeito para o AutoIt: link

Aqui está um roteiro que eu joguei para você. Coloque-o em um arquivo .au3, substitua o bloco de notas pelo seu exe e, para o Run, inclua o caminho completo:

#include <Timers.au3>
While 1
   Sleep(10)
   $idleTimer = _Timer_GetIdleTime()
   If $idleTimer > 60000 And Not ProcessExists("notepad.exe") Then
      Run("notepad.exe")
   ElseIf $idleTimer < 10 Then
      ProcessClose("notepad.exe")
   EndIf
WEnd
    
por 12.01.2014 / 17:36
5

Se você não quiser usar o AutoIt, consulte o comando quser que exibe, entre outras coisas, o tempo ocioso até o minuto mais próximo:

C:\Users\Richard>quser
 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
>richard               console             1  Active      none   26/06/2014 15:29
C:\Users\Richard>

Uma maneira simples seria testar a saída de:

quser | findstr /I %USERNAME% | findstr "none"

e se ele voltar vazio, eles estarão com mais de 1 minuto ociosos.

    
por 26.06.2014 / 17:19

Tags