1

如何从 nt 服务向在远程桌面会话中启动的应用程序发送 sendmessage 和 postmessage?目前我通过应用程序之间的 udp 通信暂时解决了这个问题。

4

3 回答 3

5

You cannot send messages across session boundaries. So you need an IPC solution like TCP/IP, sockets, named pipes etc.

于 2013-05-11T22:20:04.427 回答
1

制作一个发送消息/发送消息的程序:

程序发送;使用转换器;开始 exitcode:=sendmessage(covert1(paramstr(1)),convert2( .... 等结束。

然后使用 CreateProcessAsUser 在正确的会话中运行它。您可以等待(WaitForSingleObject)程序退出,此时发送消息完成。虽然它很慢:)。

您也可以使用管道/IPC,但您仍然可以使用 CreateProcessAsUser 启动“服务器”。使用 Jwa 获取令牌等。

并使用比我刚才做的更好的名字:)。

于 2013-05-12T03:22:27.213 回答
0

使用 WTSSendMessage api:在指定远程桌面服务会话的客户端桌面上显示消息框。

http://msdn.microsoft.com/nl-nl/library/windows/desktop/aa383842(v=vs.85).aspx

或者使用 Jedi Windows Security 库,它将它包装在类似 delphi 的漂亮对象中

于 2013-05-12T09:26:43.983 回答