Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


VelDmi,
Цитата:
при любом шевелении мышкой или клавиатурой монитор включается!
Можно попробовать это обойти проверокой на ввод пользователя:

Код: Выделить весь код
#NoTrayIcon

Opt("WinTitleMatchMode", 4)

Global $MonitorIsOff = False

HotKeySet("{F11}", "Monitor_Off")
HotKeySet("{F10}", "Monitor_On")
HotKeySet("{Esc}", "Quit")

While 1
    Sleep(10)
WEnd

Func Quit()
    Monitor_On()
    Exit
EndFunc

Func Monitor_On()
    Local $hwnd = WinGetHandle('classname=Progman')
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', -1)
    $MonitorIsOff = False
EndFunc

Func Monitor_Off()
    $MonitorIsOff = True
    Local $hwnd = WinGetHandle('classname=Progman')

        While $MonitorIsOff = True
        DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', 2)
        Sleep(10)
        _IdleWaitCommit(0)
    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(100)
        DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
    Until (DllStructGetData ($LastInputInfo, 2)-$iSave) > $idlesec Or $MonitorIsOff = False
    Return DllStructGetData ($LastInputInfo, 2)-$iSave
EndFunc
Просто по запуску скрипта нажми F11, монитор выключится, при каждом вводе (м клавиатуры или мышки) монитор будет отключаться по новой, для включения монитора нужно нажать F10, для полного выхода со скрипта ESC.
При этом любые сочетания клавиш действуют как обычно.

Это конечно не то что требуется, наверняка(?) можно полностью выключить монитор, но это тоже решение

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 23:59, 08-08-2007 | #266