【问题标题】:subscribe to windows system events native c++订阅windows系统事件本机c++
【发布时间】:2012-07-19 10:17:15
【问题描述】:

我希望我的 c++ 应用程序能够监听 Windows 系统事件,例如登录、注销、锁定... 类似于:http://www.dotnetspider.com/resources/30389-To-detect-when-system-gets.aspx,用 C# 编写。
我找到了http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspx#Y0m,但它是一个 CLR 代码。另外,我看到 SubscribeToSystemEvent 函数是用 Visual C++ 编写的。

有谁知道在原生 c++ 中使用哪些方法?

请指教,

利隆

【问题讨论】:

    标签: c++ windows winlogon


    【解决方案1】:

    当会话状态改变时,调用WTSRegisterSessionNotification 接收WM_WTSSESSION_CHANGE 窗口消息。这包括登录、注销、锁定、解锁等。确保在程序退出之前对 WTSUnRegisterSessionNotification 进行了相应的调用。

    或者,您可以收听WM_QUERYENDSESSIONWM_ENDSESSION 窗口消息。第一个允许您阻止用户注销;第二个告诉你它是否会发生。

    【讨论】:

      【解决方案2】:

      你可以试试 krabset https://github.com/Microsoft/krabsetw 这是包装器。 你也可以看看这个https://docs.microsoft.com/en-us/dotnet/api/system.security.accesscontrol?view=netframework-4.7.2

      还可以通过 PowerShell 查看 New-WinEvent 和 Get-WinEvent

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-07
        • 2016-02-04
        • 1970-01-01
        • 2010-09-07
        相关资源
        最近更新 更多