[решено] Функция "отключения монитора"

Ответить
Аватара пользователя
sashadeg

[решено] Функция "отключения монитора"

Сообщение sashadeg »

Есть ли такая функция, чтобы прервать сигнал монитора с видео картой и соответственно отключить монитор?
Аватара пользователя
Creat0R

Re: [решено] Функция "отключения монитора"

Сообщение Creat0R »

Функции для отключения/включения монитора:





Код:

Код: Выделить всё

#NoTrayIcon
Global Const $lciWM_SYSCommand = 274
Global Const $lciSC_MonitorPower = 61808
Global Const $lciPower_Off = 2
Global Const $lciPower_On = -1
Global $MonitorIsOff = False
HotKeySet("{F11}", "_Monitor_OFF")
HotKeySet("{F10}", "_Monitor_ON")
HotKeySet("{Esc}", "_Quit")
MsgBox(64, "Monitor On/Off", "Press F11 to turn off the monitor." & @LF & _
                            "Press F10 to turn on the monitor back." & @LF & _
                            "Press ESC to turn on the monitor and exit program.")
While 1
    Sleep(10)
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
Func _Quit()
    _Monitor_ON()
    Exit
EndFunc
Аватара пользователя
Iska

Re: [решено] Функция "отключения монитора"

Сообщение Iska »

Creat0R, попутный, интересующий меня, вопрос: Вы не замечали какую-либо разницу при использовании lParam = 1 (low power) и lParam = 2 (shut off), как в вышеприведённом Вашем скрипте (вроде бы некая разница должна быть, но визуально я не заметил различий)?
Аватара пользователя
sashadeg

Re: [решено] Функция "отключения монитора"

Сообщение sashadeg »

Да, спасибо Creator... Мне в личке proxi твой код скинул уже Изображение Ещё вчера его опробовал... Потрясающе!!!! Всё как и хотелосьИзображение Даже с хоткеями точно попал Изображение
Аватара пользователя
amel27

Re: [решено] Функция "отключения монитора"

Сообщение amel27 »

Iska, посмотри тут: "
ENERGY STAR specification for Monitors/Displays
",

иногда отличается временем включения монитора (на CRT мониторах было заметней)
Аватара пользователя
amel27

Re: [решено] Функция "отключения монитора"

Сообщение amel27 »

amel27, за первое — знаю, но всё равно спасибо; за второе — отдельное спасибо: меня именно это интересовало, поскольку сам я, как писал выше, что на CRT, что на LCD этой разницы не видел.
Аватара пользователя
angry_dog

Re: [решено] Функция "отключения монитора"

Сообщение angry_dog »

Цитата Creat0R:



Функции для отключения/включения монитора:
[решено] Функция "отключения монитора"




Подскажите, как воспользоваться приведённым кодом?
Аватара пользователя
Creat0R

Re: [решено] Функция "отключения монитора"

Сообщение Creat0R »

Цитата angry_dog:



как воспользоваться приведённым кодом?
[решено] Функция "отключения монитора"




Ну... эта... как бы запустить нужно в скрипте Изображение
Аватара пользователя
angry_dog

Re: [решено] Функция "отключения монитора"

Сообщение angry_dog »

Цитата Creat0R:



Ну... эта... как бы запустить нужно в скрипте
[решено] Функция "отключения монитора"




Создал текстовый файл, скопировал содержимое, поменял расширение на vbs, запустил.. ошибка. Что не так?
Аватара пользователя
beve

Re: [решено] Функция "отключения монитора"

Сообщение beve »

Цитата angry_dog:



поменял расширение на vbs, запустил.. ошибка
[решено] Функция "отключения монитора"




Тема же посвящена языку
Autoit
и поэтому соответственно скрипт для него. Для начала почитайте про этот язык програмирования, установите его, далее уже можете поменять разрешение вашего файла со скриптом на *.au3 и уже запустить...
Ответить

Вернуться в «AutoIt»