Advanced member
Статус: Не в сети Регистрация: 23.12.2003 Откуда: Гатчина, ленобл
Проблема заключается в следующем: на ноутбуке периодически из-за неисправности экран периодически становится белым, до перезагрузки или отключения экрана ноутбука.
Теперь вопрос: есть ли команда, при помощи вставки которой в ярлык я могу отключить монитор (ведь кнопки отключения монитора на нотике нет у меня)? Я привяжу этот ярлык к горячей клавише, и проблема решится: вылетает белый экран, я отключаю монитор, включаю движением курсора, все работает. Ведь были же фокусы с "Панелью управления" в Win98.
На ноутбуке у меня система Windows 2000.
Как всегда, заранее благодарю.
Advanced member
Статус: Не в сети Регистрация: 12.09.2004 Откуда: Ростов-на-Дону
А можно как-нибудь через консоль выключить только монитор, то есть, чтобы монитор перешел в StanBy (экран погас, загорелся желтый огонёк), а всё остальное работало?
С функцией SetSystemPowerState все еще проще -- она отвечает за перевод ПК в одно из состояний сна. Ее вызов может быть как условным, с ожиданием одобрения от приложений, так и безусловным. Первый из двух ее булевых параметров, fSuspend, по идее, должен указывать на необходимость перехода в состояние Suspend. Однако по причине "ill-defined" (неясной) терминологии, доставшейся OnNow в наследство от Advanced Power Management, и неопределенности различий между режимами Susspend и Standby флаг игнорируется. Установка его значения в FALSE (т. е. попытка войти в Standby) заставит ОС лишь выключить монитор. Другой параметр -- fPower -- является возвращаемым и указывает, были ли разосланы запросы другим приложениям. Значение FALSE выставляется также тогда, когда процесс остановки уже запущен
Advanced member
Статус: Не в сети Регистрация: 23.12.2003 Откуда: Гатчина, ленобл
В rundll32 судя по всему, команды чисто выключения монитора просто нет.
Пришлось наваять простенькую программку на vb, которая полностью удовлетворяет моим запросам - выключает монитор и через 5 сек. включает.
http://vbnet.mvps.org/index.html?code/s ... rpower.htm - здесь исходники.
Member
Статус: Не в сети Регистрация: 14.11.2004 Откуда: www.l-b-h.org
Delphi:
Код:
Одним из решений поставленной задачи будет использование системного сообщения WM_SYSCOMMAND с указанием команды SC_MONITORPOWER. В документации по Delphi указано, что данная функция предназначена только для Windows 95. Но на практике она работает и на более поздних версиях Windows при включенной поддержке режима энергосбережения в BIOS. Создадим два метода для включения и выключения монитора:
ВНИМАНИЕ! Хочется особо указать на возможность перегрузки элементов монитора при многократном быстром переключении режимов, что может привести к поломке электроники. Так что использовать вышеописанные функции следует осторожно.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения