TERMINAL,
Цитата:
как сделать если он есть, то прога просто использует EXIT
|
Просто вытащий из цикла:
Код:
#NoTrayIcon
$Minutes = 10 ;Тут задаётся интервал ожидания в минутах
Sleep(1000)
$Timer = TimerInit()
_IdleWaitCommit(0)
Func _IdleWaitCommit($idlesec)
Local $iSave, $LastInputInfo = DllStructCreate ("uint;dword")
DllStructSetData ($LastInputInfo, 1, DllStructGetSize ($LastInputInfo))
DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
Do
$iSave = DllStructGetData ($LastInputInfo, 2)
Sleep(100)
DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
If TimerDiff($Timer) >= $Minutes * 60000 Then
MsgBox(64, "Внимание", "10 минут спустя, а хозяина нету ;)", 10)
;Shutdown(1 + 4) ;Force Shutdown
ExitLoop
EndIf
Until (DllStructGetData ($LastInputInfo, 2)-$iSave) > $idlesec
Return DllStructGetData ($LastInputInfo, 2)-$iSave
EndFunc
Всё, теперь при первом запуске, если ничего не нажимать (и не двигать мышку), скрипт будет ждать 10 минут и выключит комп, если в течении этого времени юзер что-то сделает
, то скрипт завершит работу.
SAOPP,
Цитата:
чем лучше и практичнее будет выглядеть эта операция?
|
Во-первых тем что это быстрее, а во-вторых я подозреваю разработчики AutoIt вскоре совсем откажутся от Opt("WinTitleMatchMode", X)... и тогда придётся переделывать все наши скрипты которые использовали этот метод.