Вопрос Пакет: Как запустить программу, когда компьютер находится в режиме ожидания и остановлен, когда он используется?


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

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


4
2018-01-11 23:05


происхождения




ответы:


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

Вот сценарий, который я собрал для вас. Поместите его в файл .au3, замените блокнот на exe, и для 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

6
2018-01-12 16:36



Привет, Ксичал, спасибо большое! Это решает мою проблему. Теперь, если вы могли бы помочь мне понять, как я могу откликнуться на папку за% appdata%, я был бы очень благодарен. Предположим, я хотел, например, повторить файл в% appdata% \ Microsoft \ file.txt. Как бы Вы это сделали? Я видел, что мне нужно повторить это следующим образом: @AppDataCommonDir Но я не знаю синтаксиса, который Autoit ожидает от меня. - user2723297


Если вы не хотите использовать 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 минуты бездействия.


5
2018-06-26 15:19