SendNotifyMessage API是否适用于用户会话?

时间:2012-04-18 06:44:18

标签: c++ winapi sendmessage usersession

说,我有一个Windows服务应用程序,还有在每个登录用户会话中运行的窗口客户端应用程序。如果我在每个客户端应用程序中调用RegisterWindowMessage并尝试在那里捕获该消息。然后还在服务应用程序中使用相同的消息名称调用RegisterWindowMessage,然后再次从服务中调用SendNotifyMessage以通知每个客户端应用程序单击事件,这将有效吗?

PS。我使用C ++ / MFC和原生WinAPI编程。

1 个答案:

答案 0 :(得分:1)

如果您的服务应用程序在系统帐户下运行,则无法向用户帐户的应用程序发送消息。

您可以尝试以下方法:

  • 浏览所有会话(WTSEnumerateSessions)以获取所有会话 WindowStation,
  • 打开这些电台(OpenWindowStation),
  • 每站
    • 将您的流程与工作站(SetProcessWindowStation)相关联,
    • 浏览所有电台桌面(Enumdesktops),
    • 浏览所有窗口(EnumdesktopWindows)直到找到你的一个 应用程序窗口

你可能会遇到UAC问题。