【问题标题】:Sendmessage from NT Service to remote desktop session从 NT 服务向远程桌面会话发送消息
【发布时间】:2013-05-06 07:10:25
【问题描述】:

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

【问题讨论】:

  • 如果你不想使用 TCP/IP,命名管道很容易。

标签: windows delphi windows-server-2008 windows-server-2003


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      【解决方案3】:

      您不能跨会话边界发送消息。所以你需要一个 IPC 解决方案,比如 TCP/IP、套接字、命名管道等。

      【讨论】:

        猜你喜欢
        • 2012-05-19
        • 1970-01-01
        • 2011-12-31
        • 2015-03-24
        • 2019-01-24
        • 1970-01-01
        • 2022-06-29
        • 2022-08-02
        相关资源
        最近更新 更多