모니터를 끄기 위해서 SendMessage로 OFF 신호를 아래와 같이 보내면 모니터가 OFF 됩니다.
#define MONITOR_ON -1
#define MONITOR_OFF 2
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
물론 켜기 위해서는 아래와 같이 보내고
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_ON);
추가 적으로 keybd_event 하나를 만들어 보내니 잘 켜집니다.
이렇게 해서 모니터만 절전모드 진입/해제를 사용해서 사용하지 않는 시간에 모니터를 절전 모드로 진입시켜
에너지 절감하기 위해 사용하려고 했습니다.
그동안 사용하지 않는 시간에 Blank(black) screen을 적용하여 사용하고 있었습니다.
그렇게 사용되어지는 모니터가 많았다는데 문제의식을 갖고 시도하게 되었습니다. 그런데.......
모니터를 OFF후 의도하지 않게 마우스가 움직인다든지, 실수로 키보드를 누른다든지 등....
이러면 모니터가 ON 되어 쓸모 없게 되어 버리는 상황이 발생 되네요..
제가 의도한 시간 까지 또는 특정 버튼을 누를때까지 모니터를 ON 시키지 않토록 할 방법이나 조언을 구해 봅니다.
--시도한 방법으론
먼저 WH_KEYBOARD, WH_KEYBOARD를 이용해서 마우스와 키보드 메세지를 처리하려 했으나 짧은 생각이었고,
WH_MOUSE_LL, WH_KEYBOARD_LL를 이용하면 될까 싶었는데 이것도 생각해보니 처리가 되지 않을것 같고....
Keyboard 나 mouse 에서 발생한 이벤트를 windows에서 처리 하기 전에 뭔가를 해 줘야 될 것 같은데 내공이 부족하네요.
|