我需要运行 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 分钟了。