gpt4 book ai didi

c++ - SendNotifyMessage API 是否跨用户 session 工作?

转载 作者:行者123 更新时间:2023-11-28 08:06:27 24 4
gpt4 key购买 nike

比如说,我有一个 Windows 服务应用程序,还有一个窗口客户端应用程序在每个登录的用户 session 中运行。如果我在每个客户端应用程序中调用 RegisterWindowMessage 并尝试在其中捕获该消息。然后在服务应用程序中使用相同的消息名称调用 RegisterWindowMessage,然后在从服务再次调用 SendNotifyMessage 时使用它来通知每个客户端应用程序一次触发事件,这行得通吗?

附言。我使用 C++/MFC 和 native WinAPI 进行编程。

最佳答案

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

您可以尝试以下方法:

  • 遍历所有 session (WTSEnumerateSessions) 以获取所有 window 站,
  • 打开这些站(OpenWindowStation),
  • 每站
    • 将您的进程与工作站相关联 (SetProcessWindowStation),
    • 遍历所有站点桌面(Enumdesktops),
    • 遍历所有窗口 (EnumdesktopWindows),直到找到您的其中一个应用程序的窗口

不过,您可能会遇到 UAC 问题。

关于c++ - SendNotifyMessage API 是否跨用户 session 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10204196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com