【发布时间】:2014-07-29 16:34:31
【问题描述】:
我在谷歌上找到了这个:
版本 1:
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2); //turn off
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1); //turn on
版本 2:
HWND h = FindWindow(0, 0);
SendMessage(h, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
SendMessage(h, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
在我的笔记本电脑上(Win8.1+Visual Studio 2010): 对于这两个版本,turnoff 有效,但 turnon 无效。当执行开启代码时,屏幕会立即打开然后再次关闭。
另一件有趣的事: 在我的桌面(Win8.1+VS2013),程序会卡在版本1的任一行。但是,它可以通过版本2。关闭工作,但打开完全无效。
【问题讨论】:
-
您不应广播此消息。将其发送到有效窗口。要么自己创建,要么发送到桌面窗口。
标签: winapi