我想解决以下问题:
我的C ++程序会在用户登录时自动启动,但该程序依赖于某些服务,这些服务在非常慢的计算机上经常运行几分钟(经常发生)并且无法正常运行。
我在事件查看器中看到了一个条目(Winlogon),但是用户是SYSTEM
,我想知道使用我的程序的特定用户。
是否有一些简单的方法可以检查启动程序的用户何时登录?
答案 0 :(得分:2)
当您的程序作为用户登录的一部分运行时,在该用户登录之前不运行。
这里适当的解决方案是检查依赖关系是否已经开始。使用服务控制管理器(OpenSCManager
),查询每个服务状态(QueryServiceStatusEx
)。状态开始和开始之间存在差异;你需要后者。
答案 1 :(得分:1)
您可以使用NetGetUserInfo()获取有关用户帐户的信息。上次登录时间为USER_INFO_2结构。
当第一个参数为NULL时,该函数引用本地计算机上的用户。