如何检查用户登录Windows的时间?

时间:2016-12-02 09:29:05

标签: c++ windows

我想解决以下问题:

我的C ++程序会在用户登录时自动启动,但该程序依赖于某些服务,这些服务在非常慢的计算机上经常运行几分钟(经常发生)并且无法正常运行。

  • 如果它无法正常工作,我想向用户显示一个通知,他必须等待一段时间再开始工作,但几分钟后,
  • 如果程序仍然无效(经常发生),则必须显示警告消息 - 出现问题并需要用户交互。

我在事件查看器中看到了一个条目(Winlogon),但是用户是SYSTEM,我想知道使用我的程序的特定用户。

是否有一些简单的方法可以检查启动程序的用户何时登录?

2 个答案:

答案 0 :(得分:2)

当您的程序作为用户登录的一部分运行时,在该用户登录之前运行。

这里适当的解决方案是检查依赖关系是否已经开始。使用服务控制管理器(OpenSCManager),查询每个服务状态(QueryServiceStatusEx)。状态开始开始之间存在差异;你需要后者。

答案 1 :(得分:1)

您可以使用NetGetUserInfo()获取有关用户帐户的信息。上次登录时间为USER_INFO_2结构。

当第一个参数为NULL时,该函数引用本地计算机上的用户。