在 C# 服务中处理 window 条消息

Handle window messages in a C# service

我想捕获工作站锁定和解锁以及用户登录和注销事件。我已经编写了一个覆盖 WndProc 函数的程序,但这不会捕获登录和注销事件(因为当此事件发生时应用程序已退出或尚未启动)。

所以我认为使用服务可能会奏效。我已经阅读了 Receive Windows Messages in a Service,但我在 C# 中找不到 GetMessage()。 如何使用 C# 在服务中读取 Windows 消息?

顺便说一句,我也尝试了 Message pump in .NET Windows service 中的方法,但我无法弄清楚这如何适合我的问题。此外,参考 Microsoft link 不再可用...

.NET 中的消息泵 Windows 服务文章应该是您使用的。如果您需要一个消息泵,您还需要一个接收消息的 window 句柄。那篇文章向您展示了如何创建本机 Win32 window 以及如何处理发送给它的消息。您可能从那篇文章中遗漏的是,您只需要注册每次收到新消息时都会引发的 MessageHandler.MessageReceived 事件。