通过远程桌面打开/关闭显示器

时间:2015-03-21 23:26:58

标签: c# session pinvoke remote-desktop sendmessage

我正在编写一个小工具,让我可以打开/关闭显示器。我正在使用此处描述的方法(http://fci-h.blogspot.com/2007/03/turn-off-your-monitor-via-code-c.html),我正在用c#编写我的实用程序。

到目前为止,我已经设法运行该实用程序并在我直接登录到我的计算机时打开/关闭我的显示器但是当我通过远程桌面连接时尝试切换显示器时出现问题我的窗口7.上面提到的代码无法关闭或打开显示器。

我想这与远程桌面有关,但我不确定它是什么以及如何为此找到解决方法。

有人有任何线索吗?

1 个答案:

答案 0 :(得分:1)

可能你被UIPI阻止了。如果您查看SendMessage的文档,您会在第一个参数上看到此警告:

  

邮件发送受UIPI约束。进程的线程可以发送   消息仅发送给较小或过程中的线程的消息队列   同等诚信水平。

您可以尝试使用VNC而不是远程桌面。当RDP连接到Windows计算机时,会为客户端创建一个新会话。 VNC将允许您访问VNC服务器正在执行的桌面会话。

请注意,我在这里使用会话这个词来指代Windows桌面的特定概念,以及它自己的特殊规则。你可以read more about windows Sessions here