Версия AutoIt: 3.3.8
Описание: есть скрипт который стоит на телевизорах с (оп вин 7) он выключает монитор в 9 вечера и в 9 утра включает. там запушен плеер на котором играет различная реклама. но бывает что он сворачивается и приходится его разворачивать. нужно дописать скрипт чтоб он отслеживал свернуто окно или нет и при необходимости разворачивал его.
Примечания:
Описание: есть скрипт который стоит на телевизорах с (оп вин 7) он выключает монитор в 9 вечера и в 9 утра включает. там запушен плеер на котором играет различная реклама. но бывает что он сворачивается и приходится его разворачивать. нужно дописать скрипт чтоб он отслеживал свернуто окно или нет и при необходимости разворачивал его.
Примечания:
Код:
;#NoTrayIcon
Global Const $lciWM_SYSCommand = 274
Global Const $lciSC_MonitorPower = 61808
Global Const $lciPower_Off = 2
Global Const $lciPower_On = -1
Global $MonitorIsOff = False
While 1
If '' & @HOUR & @MIN >= '0845' And '' & @HOUR & @MIN <= '2100' Then
If $MonitorIsOff Then
_Monitor_ON()
EndIf
Else
If Not $MonitorIsOff Then
_Monitor_OFF()
EndIf
EndIf
Sleep (120000)
WEnd
Func _Monitor_ON()
$MonitorIsOff = False
Local $Progman_hwnd = WinGetHandle('[CLASS:Progman]')
DllCall('user32.dll', 'int', 'SendMessage', _
'hwnd', $Progman_hwnd, _
'int', $lciWM_SYSCommand, _
'int', $lciSC_MonitorPower, _
'int', $lciPower_On)
EndFunc
Func _Monitor_OFF()
$MonitorIsOff = True
Local $Progman_hwnd = WinGetHandle('[CLASS:Progman]')
; While $MonitorIsOff = True
; Цикл нужен, если нас беспокоит включение от мыши/клавы, а в нашем случае их нет :)
DllCall('user32.dll', 'int', 'SendMessage', _
'hwnd', $Progman_hwnd, _
'int', $lciWM_SYSCommand, _
'int', $lciSC_MonitorPower, _
'int', $lciPower_Off)
; _IdleWaitCommit(0)
; Sleep(20)
; WEnd
EndFunc
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(60)
DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
Until (DllStructGetData ($LastInputInfo, 2)-$iSave) > $idlesec Or $MonitorIsOff = False
Return DllStructGetData ($LastInputInfo, 2)-$iSave
EndFunc