批处理:如何在计算机空闲时运行程序,在使用时停止?

批处理:如何在计算机空闲时运行程序,在使用时停止?

我需要运行 Windows 批处理(或者其他任何命令行软件都可以),当计算机空闲一分钟时运行一个程序,并在使用时停止它。当计算机再次空闲时,我显然应该重新启动它。

有什么想法吗?找不到不使用 GUI 的东西。

答案1

这对于 AutoIt 来说是一项完美的工作:http://autoitscript.com

这是我为您编写的脚本。将其放入 .au3 文件中,将 notepad 替换为您的 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

答案2

如果你不想使用 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 分钟了。

相关内容