Help needed to power down monitor in a C++ service.

Newbie Member
25Jun2009,16:12   #1
predatorsown's Avatar
I recently finished a project but was then asked to make it into a service. I hit a problem in that I need to put the monitor into standby mode as part of this and odviously can't use the usual as there is no window to send a message to.

SendMessage( hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)2 );

Is there a more direct way of getting the same functionallity that would work in a service and if so how? Thanks for any help given.

Joe.
~ Б0ЯИ Τ0 С0δЭ ~
25Jun2009,20:22   #2
SaswatPadhi's Avatar
If you don't have a window to SendMessage to, you can send the message to all top-level windows :
Code:
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)2 );
or, you can also use GetDesktopWindow to send message to the desktop window.

Hope that would be helpful
Newbie Member
30Jun2009,03:14   #3
predatorsown's Avatar
I've already tried the first and it doesn't compile because not only does a service have to run without its own window but also has to run without a windows messaging loop.

I'll give the later a try tomorrow and will let you know if it works.

Joe.
Newbie Member
30Jun2009,16:35   #4
predatorsown's Avatar
Many thanks SaswatPadhi. Tried the GetDesktopWindow function and that did the job.

Thanks again

Joe.
~ Б0ЯИ Τ0 С0δЭ ~
30Jun2009,17:59   #5
SaswatPadhi's Avatar
My pleasure