【已解决】关于检测空闲时间运行的问题
本帖最后由 anythinging 于 2019-10-23 21:16 编辑各位朋友,我想请教5秒钟键鼠空闲我会实现了,但如果在此基础上,再等5秒运行其它程序比如关机,求指点!
While 1
Local $iIdleTime1 = _Timer_GetIdleTime()
if $iIdleTime1 >5000 Then
MsgBox(0,'','超过5秒没操作了',1)
;如果再空闲5秒钟,就关机
Local $iIdleTime2 = _Timer_GetIdleTime()
If $iIdleTime2 > 5000 Then
MsgBox(0,'','开始关机',1)
EndIf
EndIf
WEnd
个人觉得应该是在第二个检测空闲的时候将后台空闲的计时器清零,但尝试_Timer_SetTimer
,_Timer_KillAllTimers不得要领,恳请各位大神指点!谢谢! anythinging 发表于 2019-10-21 22:21
Local $startcheck = 0
While 1
;MsgBox(0,'',$startcheck,1)
注意CPU占用;Sleep(6000)这种过长的休眠也不是好习惯,虽然这里无所谓~
#include <Timers.au3>
Local $nn = 0, $IdleTime
While 1
Sleep(100)
$IdleTime = _Timer_GetIdleTime()
If $IdleTime > 5000 Then
If $nn = 0 Then
MsgBox(0, '', '超过5秒没操作了', 1)
$nn = 1
ElseIf $IdleTime > 10000 Then
MsgBox(0, '', '开始关机', 1)
ExitLoop
EndIf
Else
$nn = 0
EndIf
WEnd
;~ Shutdown(1)
MsgBox(0, '', '关机') 我觉得判断$iIdleTime1 + $iIdleTime2 是否大于10秒是不是更好??:face (24): 229989799 发表于 2019-10-21 20:29
我觉得判断$iIdleTime1 + $iIdleTime2 是否大于10秒是不是更好??
这个相加是木有意义的~:face (24):
我知道LZ的意思,5秒没操作提示后再5秒没操作就关机,但是5秒没操作提示后操作了就需要重新来过。
提示后加个已提示的标记,之后如果有此标记就不用再次提示,进入关机时间判断 我想了个办法,能过send一个无关紧要的键可以清空键盘空闲时间,但仍达不到预期
send("{TAB}")
但又有了一个问题,如何在清空键盘时间后继续检测空闲状态
有个很典型的例子,系统的屏保:现在卡在如何屏保运行后,如果动键鼠就退出屏保,如果不动,到达指定时间就体眠计算机。 本帖最后由 anythinging 于 2019-10-21 22:25 编辑
Local $startcheck = 0
While 1
;MsgBox(0,'',$startcheck,1)
If $startcheck = 1 Then
Sleep(6000)
Local $iIdleTime2 = _Timer_GetIdleTime()
If $iIdleTime2 > 6000 Then
MsgBox(0,'','开始关机',1)
Else
$startcheck = 0
EndIf
Else
Local $iIdleTime1 = _Timer_GetIdleTime()
if $iIdleTime1 >5000 Then
$startcheck = 1
send("{TAB}");清零空闲时间
MsgBox(0,'','超过5秒没操作',1)
EndIf
EndIf
WEnd
我的目的达到了,用了版主的标记,加上sleep,还有send,感觉有点业余啊,能否再完美些 afan 发表于 2019-10-22 09:29
注意CPU占用;Sleep(6000)这种过长的休眠也不是好习惯,虽然这里无所谓~
版主您这代码太简练,高效了,佩服的五体投地!
页:
[1]