Долго ковырялся в сети, чтобы узнать, как включить скринсейвер. нашел что-то вроде этого:
GetDesktopWindow()->PostMessage(WM_SYSCOMMAND, SC_SCREENSAVE, 0L);
Хорошо, для скринсейвера это действительно работает. А что делать, если у меня в настройках экрана скринсейвер отключен, а вместо него я использую опцию "Отключение дисплея" (кнопка "Питание" вкадки "Заставка" в Windows XP).
Проще говоря — как мне программно отключить дисплей?
Здравствуйте, Аноним, Вы писали:
А>Долго ковырялся в сети, чтобы узнать, как включить скринсейвер. нашел что-то вроде этого:
А>А>GetDesktopWindow()->PostMessage(WM_SYSCOMMAND, SC_SCREENSAVE, 0L);
А>
А>Хорошо, для скринсейвера это действительно работает. А что делать, если у меня в настройках экрана скринсейвер отключен, а вместо него я использую опцию "Отключение дисплея" (кнопка "Питание" вкадки "Заставка" в Windows XP).
А>Проще говоря — как мне программно отключить дисплей?
SC_MONITORPOWER ?
Здравствуйте, BlackHeretic, Вы писали:
А>>Проще говоря — как мне программно отключить дисплей?
BH>SC_MONITORPOWER ?
Не годиться. Во-первых в XP не работает. А главное — это не отключение монитора (так, чтобы желтая лампочка на нем мигала), а просто включение черного экрана.
Здравствуйте, CooLer2912, Вы писали:
CL>Здравствуйте, BlackHeretic, Вы писали:
А>>>Проще говоря — как мне программно отключить дисплей?
BH>>SC_MONITORPOWER ?
CL>Не годиться. Во-первых в XP не работает. А главное — это не отключение монитора (так, чтобы желтая лампочка на нем мигала), а просто включение черного экрана.
Посмотри
здесь
И где ты собсно нашел что это на XP не пашет?...
У меня XP и у меня не пашет ни один из вариантов:
GetDesktopWindow()->PostMessage(WM_SYSCOMMAND, SC_MONITORPOWER, 2);
GetDesktopWindow()->PostMessage(WM_SYSCOMMAND, SC_MONITORPOWER, 1);
Экран буквально на полсекунды чернеет и все возвращается...
Здравствуйте, CooLer2912, Вы писали:
CL>У меня XP и у меня не пашет ни один из вариантов:
CL>CL>GetDesktopWindow()->PostMessage(WM_SYSCOMMAND, SC_MONITORPOWER, 2);
CL>GetDesktopWindow()->PostMessage(WM_SYSCOMMAND, SC_MONITORPOWER, 1);
CL>
у меня вот такой код работает и в XP:
SendMessage(AfxGetMainWnd()->m_hWnd, WM_SYSCOMMAND,SC_MONITORPOWER,2);
CL>Экран буквально на полсекунды чернеет и все возвращается... 
Уменя такое было когда я ставил хук на клавиатуру и после виключения монитора
моя програма продолжала выполнять слежку за клавиатурой ;
а если програма ничего не делает после SendMessage то монитор нормально выключается
Здравствуйте, barbarian, Вы писали:
B>у меня вот такой код работает и в XP:
B>SendMessage(AfxGetMainWnd()->m_hWnd, WM_SYSCOMMAND,SC_MONITORPOWER,2);
CL>>Экран буквально на полсекунды чернеет и все возвращается...
B>Уменя такое было когда я ставил хук на клавиатуру и после виключения монитора
B>моя програма продолжала выполнять слежку за клавиатурой ;
B>а если програма ничего не делает после SendMessage то монитор нормально выключается
Да, в этом была все причина. Теперь работает. Спасибо!