2009-03-03 6 views
4

Я уже использую какой-то код, чтобы отключить питание монитора, но у меня все еще есть небольшая проблема.Как правильно отключить питание монитора в C#?

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

Я понятия не имею, почему это происходит, возможно, некоторые из вас знают, почему ... Этого никогда не произойдет, если я установлю настройки Windows Power, чтобы выключить монитор через X минут, но мне нужно приложение, чтобы сделать это, чтобы я может вызвать его с помощью ярлыка, когда захочу.

код я использую что-то вроде этого:

[System.Runtime.InteropServices.DllImport("user32.dll")] 
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam); 

const int WM_SYSCOMMAND = 0x0112; 
const int SC_MONITORPOWER = 0xF170; 
const int HWND_BROADCAST = 0xFFFF; 

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2); 

Любые идеи?

ответ

1

Вы тестировали это на нескольких машинах? Может быть проблема с драйвером ...

+0

Нет, только на моем. Это тот, который я хочу, чтобы он работал ... –

4

Вы не хотите передавать это сообщение во все окна. Вы полагаетесь на каждого из них, чтобы обрабатывать его, как вы ожидаете.

Вам необходимо создать свое собственное и только отправить сообщение, чтобы вы могли контролировать поведение.

Там есть несколько решений в комментариях этого поста Раймонда Чена: http://blogs.msdn.com/oldnewthing/archive/2006/06/13/629451.aspx

+1

+1 радиовещание может вызвать множество неприятных проблем. –

+0

Я прочитаю эту ссылку, когда я получу шанс и отправлю отчет :) –

+0

Это не сработало ... ЖК-индикатор не выключается все время :( –

0

Ничего не работало, я создал свой собственный Window и использовать этот дескриптор окна и большую часть времени, экран выключается, и это полностью черный (ЖК-дисплей выключен), но каждый раз, ЖК-индикатор не выключается ... :(

0

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

Это даже происходит, когда машины регистрируются . Обычно 1 перезагрузка устраняет проблему. Не всегда.

Я даже видел, как экраны просыпаются и отказываются снова спать на машине, которая была вышла из системы, и никто не общался с ней.

Очевидно, что есть какой-то процесс или процессы, виноватые, но как вы их отслеживаете?

Смежные вопросы