我如何发送sendmessage&从nt服务到在远程桌面会话中启动的应用程序的postmessage?目前我通过应用程序之间的udp通信暂时解决了这个问题。
答案 0 :(得分:5)
您无法跨会话边界发送消息。因此,您需要一个IPC解决方案,如TCP / IP,套接字,命名管道等。
答案 1 :(得分:1)
创建一个执行sendmessage / postmessage的程序:
程序sendit; 使用转换器; 开始 exitcode:= sendmessage(covert1(paramstr(1)),convert2(....等 端。
然后使用CreateProcessAsUser在正确的会话中运行它。您可以等待(WaitForSingleObject)程序退出,此时sendmessage已完成。但它很慢:)。
您也可以使用管道/ IPC,但您仍然可以使用CreateProcessAsUser启动“服务器”。使用Jwa获取令牌等。
使用比我刚才更好的名字:)。
答案 2 :(得分:0)
使用WTSSendMessage api:在指定的远程桌面服务会话的客户端桌面上显示一个消息框。
http://msdn.microsoft.com/nl-nl/library/windows/desktop/aa383842(v=vs.85).aspx
或者使用Jedi Windows安全库,它将这个包装在漂亮的delphi中,就像对象一样