Там какой-либо путь состоит в том, чтобы обнаружить состояние монитора в Windows (на или прочь)?

Попробуйте использовать:

Console.WriteLine()

Вызов Debug.WriteLine будет выполнен только во время определения DEBUG.

Другие предложения use: Trace.WriteLine, но я этого не пробовал.

Существует также опция (не уверен, что VS2008 имеет ее), но вы все равно можете использовать Debug.WriteLine при запуске теста с помощью Test With Debugger в IDE

19
задан Sam Saffron 15 October 2008 в 21:31
поделиться

5 ответов

GetDevicePowerState иногда работы для мониторов. Если это присутствует, можно открыться \\.\LCD устройство. Закройте его сразу после окончания с ним.

По существу, Вы вне luck— нет никакого надежного способа обнаружить состояние электропитания монитора, за исключением записи драйвера устройства и фильтрации всего питания IRPs вверх и вниз по цепочке драйвера дисплея. И это не очень надежно также.

13
ответ дан 29 November 2019 в 23:45
поделиться

Вы могли поднять трубку веб-камеру, указать на него на Ваш экран и сделать некоторый анализ изображений, которые Вы получаете;)

14
ответ дан 29 November 2019 в 23:45
поделиться

Прежде, чем сделать что-либо на основе состояния монитора, просто помните, что пользователи могут использовать машину с удаленным рабочим столом других систем, которые не требуют монитора, подключенного к машине - так не выключайте визуализацию на основе состояния монитора.

7
ответ дан 29 November 2019 в 23:45
поделиться

В Windows XP или позже можно использовать Интерфейс IMSVidDevice.

Видят http://msdn.microsoft.com/en-us/library/dd376775 (По сравнению с 85) .aspx

(не уверенный, если это работает в, Разъединяют 2003)

2
ответ дан 29 November 2019 в 23:45
поделиться

Вы не можете.

Похожи на все возможности питания монитора, подключенные с "безопасный режим питания"
После поиска, который я нашел здесь код, что, соединяясь между [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] "безопасный режим питания" .

6
ответ дан 29 November 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: