Попробуйте использовать:
Console.WriteLine()
Вызов Debug.WriteLine
будет выполнен только во время определения DEBUG.
Другие предложения use: Trace.WriteLine
, но я этого не пробовал.
Существует также опция (не уверен, что VS2008 имеет ее), но вы все равно можете использовать Debug.WriteLine
при запуске теста с помощью Test With Debugger
в IDE
GetDevicePowerState иногда работы для мониторов. Если это присутствует, можно открыться \\.\LCD
устройство. Закройте его сразу после окончания с ним.
По существу, Вы вне luck— нет никакого надежного способа обнаружить состояние электропитания монитора, за исключением записи драйвера устройства и фильтрации всего питания IRPs вверх и вниз по цепочке драйвера дисплея. И это не очень надежно также.
Вы могли поднять трубку веб-камеру, указать на него на Ваш экран и сделать некоторый анализ изображений, которые Вы получаете;)
Прежде, чем сделать что-либо на основе состояния монитора, просто помните, что пользователи могут использовать машину с удаленным рабочим столом других систем, которые не требуют монитора, подключенного к машине - так не выключайте визуализацию на основе состояния монитора.
В Windows XP или позже можно использовать Интерфейс IMSVidDevice.
Видят http://msdn.microsoft.com/en-us/library/dd376775 (По сравнению с 85) .aspx
(не уверенный, если это работает в, Разъединяют 2003)
Вы не можете.
Похожи на все возможности питания монитора, подключенные с "безопасный режим питания"
После поиска, который я нашел здесь код, что, соединяясь между [1 113] сообщение SC_MONITORPOWER и системные значения (отправляют номер 2)
я использую код к тестированию, если система оценивает, изменяется, когда я, вручную выключают монитор.
int main()
{
for(;monitorOff()!=1;)
Sleep(500);
return 0;
}//main
И код никогда не останавливается, неважно, сколько времени я, выключают мой монитор.
Там код функции monitorOff:
int monitorOff()
{
const GUID MonitorClassGuid =
{0x4d36e96e, 0xe325, 0x11ce,
{0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}};
list<DevData> monitors;
ListDeviceClassData(&MonitorClassGuid, monitors);
list<DevData>::iterator it = monitors.begin(),
it_end = monitors.end();
for (; it != it_end; ++it)
{
const char *off_msg = "";
//it->PowerData.PD_PowerStateMapping
if (it->PowerData.PD_MostRecentPowerState != PowerDeviceD0)
{
return 1;
}
}//for
return 0;
}//monitorOff
Заключение: , когда Вы вручную переключаетесь монитор, , Вы наклоняетесь, ловят его окнами (если нет никакого необычного интерфейса драйвера для этого), потому что все возможности окон подключены с [1 116] "безопасный режим питания" .