Что нового

Отключение\Включение питания монитора

Shaman

Знающий
Сообщения
33
Репутация
5
Собственно вопрос в следующем: Как включить\отключить питание монитора?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Код:
#include <SendMessage.au3>
HotKeySet('^!i', '_Exit')
While 1
	Sleep(100)
	Opt("WinTitleMatchMode", 4)
	$hwnd = WinGetHandle('classname=Progman')
	_SendMessage($hWnd, 274, 61808, 2)
WEnd
Func _Exit()
	_SendMessage($hWnd, 274, 61808, -1)
	Exit
EndFunc

Из режима можно выйти только нажав ctrl+i. ну или ctrl+alt+del и убить процесс
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Еще вариант с официального форума:

Код:
HotKeySet("!{F7}", "On")
HotKeySet("!{F7}", "Off")

While 1
    Sleep(500)
Wend

Func Off()
    _Monitor("off")
EndFunc

Func On()
    _Monitor()
EndFunc

Func _Monitor($sIo_control = "on")
    Local $iWM_SYSCommand = 274
    Local $iSC_MonitorPower = 61808
    Local $iSC_ScreenSave = 61760
    Local $hWnd = WinGetHandle("[CLASS:Progman]")
    Switch StringUpper($sIo_control)
        Case "OFF"
            DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", $iWM_SYSCommand, "int", $iSC_MonitorPower, "int", 2)
        Case "ON"
            DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", $iWM_SYSCommand, "int", $iSC_MonitorPower, "int", -1)
        Case "POWERSAVE"
            DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", $iWM_SYSCommand, "int", $iSC_MonitorPower, "int", 1)
        Case "SCREENSAVER"
            DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", $iWM_SYSCommand, "int", $iSC_ScreenSave, "int", 0)
        Case Else
            MsgBox(64, @ScriptName, "Command usage: on/off/powersave/screensaver")
    EndSwitch

EndFunc;==>_Monitor
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Хочу прикрутить этот скрипт к своему боту, можно как то сделать чтобы монитор не включался от движения курсора мыши?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
rusreg79
Этот http://autoit-script.ru/index.php?topic=760.msg5272#msg5272 отключает монитор перманентно, пока не нажмешь хоткей
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Нет так не годится, у меня же остальные функции в боте не будут выполнятся.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
rusreg79
прикрути через AdlibRegister с интервалом, скажем, 100 мс.
 

tctdllreg

Новичок
Сообщения
8
Репутация
0
Kaster
Воспользовался Вашей рекомендацией (интервал менял от 100 до 20 мс, результат одинаковый). При этом экран гаснет, при любом движении мыши или нажатии клавиши вспыхивает, затем гаснет вновь. Длительность "горения" экрана от выставленной паузы не зависит, меньше секунды, но явно больше 100 мс.
Ноутбук DELL Inspiron 6400, ОС Win 7 RU 7600 x32, версия AutoIt 3.3.6.1

P. S. Также пробовал запустить скрипт по выключению экрана как отдельную программу, вне основного скрипта. Результат тот же.
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Я, тоже для бота, сделал так:
Код:
_NirCMD_Monitor("off")
Sleep(2000)
_NirCMD_Monitor()

Func _NirCMD_Monitor($sState = "on")
	Run("nircmd.exe monitor "&$sState)
EndFunc


NirCMD

---

Пусть и использует левую утилиту, главное работает :smile:

Нифига не работает... Странно что я раньше не замечал, что монитор включается при какой либо активности :D
 

tctdllreg

Новичок
Сообщения
8
Репутация
0
Не появилось ли решение проблемы? Запущенный скрипт всю ночь жжёт монитор ноутбука, который не выключишь кнопкой: жаль железячку.
Поиск по форуму не помог, тема "Помощь в переделке скрипта предназначеного для выключения монитора" не несёт полезной в моём случае информации.
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Ноутбук (Нетбук) можно спокойно закрыть и экран будет отключен
 

tctdllreg

Новичок
Сообщения
8
Репутация
0
Спасибо всем за ответы.
AZJIO
Предложенное решение имеет тот же самый недостаток, что и приведенное выше: монитор выключается, при движении мышки рывком включается, затем снова гаснет.
Ganibal95
Тогда возникает перегрев.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
tctdllreg сказал(а):
Тогда возникает перегрев.

Откуда перегрев? Поставьте в настройках энергосбережения режим Sleep на закрытие крышки.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
tctdllreg
А как его включать если монитор не будет реагировать на мышь и клавиатуру? Можно ещё попробовать скрипт сделанный с использованием devcon. Отключить устройства и не будет реагировать.
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Re: Отключение\\Включение питания монитора

Вот хороший способ:
1. Идем где воткнут монитор в розетку
2. Выдераем из розетки
3. Радуемся что монитор выключен
;D


Добавлено:
Сообщение автоматически объединено:

а вообще зайди в настроики электоропитания, по бездействию можно поставить чтоб монитор выключался, а все устроиства и мозги работают... :smile:
 

tctdllreg

Новичок
Сообщения
8
Репутация
0
Yashied
Откуда перегрев? Поставьте в настройках энергосбережения режим Sleep на закрытие крышки.
Вентиляционные решётки находятся по бокам клавиатуры; при закрытой крышке значительно затрудняется циркуляция воздуха, ноутбук греется прямо на глазах. Sleep тоже не годится, как уже подметили выше, тогда не работает то, ради чего весь этот сыр-бор затевался.
AZJIO
tctdllreg
А как его включать если монитор не будет реагировать на мышь и клавиатуру? Можно ещё попробовать скрипт сделанный с использованием devcon. Отключить устройства и не будет реагировать.
Я имел в виду, чтоб монитор не включался при движениях мыши и нажатиях произвольных клавиш, но включался от определённой комбинации клавиш. Путь с утилитой выглядит перспективным, но рискованным. Может ли получиться так, что я отключу монитор настолько сильно, что его спасёт только переустановка винды?
Ganibal95
Вот хороший способ:
1. Идем где воткнут монитор в розетку
2. Выдераем из розетки
3. Радуемся что монитор выключен
;D
Добавлено: Октябрь 15, 2011, 09:22:44
а вообще зайди в настроики электоропитания, по бездействию можно поставить чтоб монитор выключался, а все устроиства и мозги работают... :smile:
Способ классный, спору нет, но структурная целостность ноутбука всё ж милее. Монитор ноутбука в большинстве случаев запитывается непосредственно от БП ноутбука, обесточить его отдельно без переделки ноута в моей модели нельзя.
Комп не бездействует, он активно шевелит мышкой, клацает по миникарте, нажимает клавиши скилов. Поэтому и второй вариант не годится.
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
tctdllreg
Нужно тестировать. Попробуй на примере сетевой платы. Придумай необходимую тебе логику. Например скрипт должен быть в автозагрузке. Можно сделать чтобы по клавише Shift, если удерживается при запуске скрипта, то монитор включается, то есть по умолчанию запускается с отключенным монитором. Ну и комбинацию клавиш сделать на вкл/выкл.
Если с сетевой платой будет работать, то далее пробовать с монитором.
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Крыжку закрой и все, я сам эксперементировал на нетбуке. Я ост. немного пространства(Примерно чуть меньше 1см.) и я увидел что экран потух, а все остальное работает... Монитор же выключился и все... Я его так тоже на ночь остовлял в WOW качатся, просто закрою крышку и спать иду... Не каких перегревов небыло...
 
Верх