我要做的是仅在用户处于非活动状态时运行.exe。当屏幕再次激活时,脚本应该重新启动。
逻辑:
While True:
Is the user active:
NO-> Is the .exe running -> Yes: Do nothing No: run the Program
YES -> Close the .exe
有关如何使用Auto It
进行编程的任何建议编辑:
不活动:没有用户活动(移动鼠标或其他方式) 运行程序:这是一个自定义的.exe文件,它将保存在同一个文件夹中。
这适用于Windows机器,而不是Linux机器
答案 0 :(得分:2)
_Timer_GetIdleTime()正是您所需要的。
返回数字 自上次用户活动以来的刻度(即KYBD /鼠标)
使用示例:
#include <Timers.au3>
$InactivityTrigger = 5*1000 ;inactive for 5 seconds
$myExe = "calc.exe"
$PID = 0
While True
$InactiveFor = _Timer_GetIdleTime()
If $InactiveFor >= $InactivityTrigger And Not $PID Then
$PID = Run($myExe)
ConsoleWrite("started" & @CRLF)
ElseIf $InactiveFor < $InactivityTrigger And $PID Then
ProcessClose($PID)
$PID = 0
ConsoleWrite("stopped" & @CRLF)
EndIf
If Not $PID And Not IsFloat($InactiveFor/10) Then ToolTip("Inactive for: " & Round($InactiveFor/1000) & " seconds." & @CRLF & @CRLF & _
"Will run exe in " & Round( ($InactivityTrigger-$InactiveFor)/1000 ) & " seconds." )
Wend