我创建了一个 Windows 服务来使用 createProcessAsUser 运行我的自定义应用程序。结果是一个应用程序在会话 ID 0 中使用 SYSTEM 用户运行,正如我所料。我的问题是,我需要在此应用程序与当前用户创建的其他应用程序之间进行一些通信。
如果某些桌面事件发生(SC_SCREENSAVE,监视器关闭),当前用户应用程序捕获的事件,我需要告诉我的系统应用程序。我用过:
SendMessage(HWND_BROADCAST, CURRENT_USER_HAS_DONE_SOMETHING, 0, 0);
即使 SYSTEM 应用程序捕获了很多系统事件(挂起、注销...),并且在同一个会话 ID 中运行,我的自定义消息也永远不会被捕获。Sendmessage 似乎不适用于 SYSTEM 用户。
如何从用户当前会话向 SYSTEM 应用程序发送消息?