4

Мне нужно запустить пакет Windows (или любое другое программное обеспечение для командной строки, которое подойдет), который будет запускать программу, когда компьютер не используется в течение минуты, и останавливать ее при использовании. Я, очевидно, должен начать все заново, когда он снова будет бездействовать.

Есть идеи? Не могу найти ничего, что не использует графический интерфейс.

2 ответа2

6

Это идеальная работа для AutoIt: http://autoitscript.com

Вот сценарий, который я написал для вас. Поместите его в файл .au3, замените блокнот на исполняемый файл, а для Run укажите полный путь:

#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
5

Если вы не хотите использовать AutoIt, посмотрите на команду quser которая показывает, среди прочего, время простоя до ближайшей минуты:

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>

Одним простым способом было бы проверить вывод:

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

и если он возвращается пустым, то он простаивает более 1 минуты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .