【发布时间】:2013-05-06 07:10:25
【问题描述】:
如何从 nt 服务向在远程桌面会话中启动的应用程序发送 sendmessage 和 postmessage?目前我通过应用程序之间的 udp 通信暂时解决了这个问题。
【问题讨论】:
-
如果你不想使用 TCP/IP,命名管道很容易。
标签: windows delphi windows-server-2008 windows-server-2003
如何从 nt 服务向在远程桌面会话中启动的应用程序发送 sendmessage 和 postmessage?目前我通过应用程序之间的 udp 通信暂时解决了这个问题。
【问题讨论】:
标签: windows delphi windows-server-2008 windows-server-2003
使用 WTSSendMessage api:在指定远程桌面服务会话的客户端桌面上显示消息框。
http://msdn.microsoft.com/nl-nl/library/windows/desktop/aa383842(v=vs.85).aspx
或者使用 Jedi Windows 安全库,它将它包装在类似 delphi 的漂亮对象中
【讨论】:
制作一个发送消息/发送消息的程序:
程序发送; 使用转换器; 开始 exitcode:=sendmessage(covert1(paramstr(1)),convert2( .... etc 结束。
然后使用 CreateProcessAsUser 在正确的会话中运行它。您可以等待 (WaitForSingleObject) 程序退出,此时发送消息完成。不过速度很慢:)。
您也可以使用管道/IPC,但您仍然可以使用 CreateProcessAsUser 启动“服务器”。使用 Jwa 获取令牌等。
并且使用比我刚才做的更好的名字:)。
【讨论】:
您不能跨会话边界发送消息。所以你需要一个 IPC 解决方案,比如 TCP/IP、套接字、命名管道等。
【讨论】: