0

我有一个关于在 Windows 中发送消息以使用winapi功能打开监视器的技术问题。

当我发送这样的消息时:

SendNotifyMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,-1)

中的标签Internet Explorer被移动。这是我已经解决了三天的问题,至今还没有找到解决方案。你们能解释一下为什么我发送该消息时 IE 中的标签会移动吗?

谢谢。

4

2 回答 2

1

我希望发生的事情是这样的:

  1. 您有多个显示器。
  2. 消息到达 IE,它的监视器正在关闭。
  3. IE 通过将自身移动到其余监视器之一来对此做出响应。
于 2013-01-25T09:19:43.260 回答
1

如果您想通过发送 SC_MONITORPOWER 来控制显示器的电源,您只需将此消息发送到您自己的程序本身(正在发送消息的程序)即可。此消息最终将过滤到 DefWindowProc 并由操作系统处理。

PostMessage(m_hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

用户程序广播这样的系统消息可能会导致意想不到的复杂性,因为所有应用程序都被迫对其进行响应并以自己的方式多次处理消息。

参考:http: //blogs.msdn.com/b/oldnewthing/archive/2006/06/13/629451.aspx

于 2013-01-25T14:34:02.130 回答