繁体   English   中英

Windows服务可以接收Windows消息吗?

[英]Can a Windows Service receive Windows Messages?

我创建了一个应用程序来接收广播的Windows消息,效果很好。 当我将其转换为服务,安装并启动服务时,该服务未收到该消息。

该服务可能必须被授予对桌面的访问权限。 从“服务”属性的“登录”选项卡上,以“本地系统”帐户身份登录,然后选中“允许服务与桌面交互”。

在用户桌面上让Windows作为SYSTEM运行是一个安全问题,您应该确实使用其他形式的IPC (如果您需要做的就是在不提供任何其他数据的情况下通知服务,则(全局)命名事件就足够了)

另一方面,如果您想从Windows本身捕获有关设备更改,电源和会话事件等的通知,而在作为服务运行时不对消息进行处理,则可以在HandlerEx中获取这些事件。

谁发送广播? 除非发送广播的组件作为本地系统运行,否则它无权在不同会话中向窗口句柄发送窗口消息。

由于所有Windows服务(自Vista开始)都在会话0中运行,而几乎所有其他组件都在会话> = 1中运行,因此最有可能的原因就是您没有收到广播。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM