【问题标题】:How to know when all interactive users have logged out? [duplicate]如何知道所有交互式用户何时退出? [复制]
【发布时间】:2013-11-17 10:43:30
【问题描述】:

我正在使用 WinAPI 和 C++ 编写 Windows 服务。选项之一是我需要在所有用户注销后让系统进入睡眠状态。注销命令是从 UI 启动的(它可以通知我的服务),问题是要知道在让系统进入睡眠状态之前完全注销所有用户帐户需要多长时间。

我最初想从发出注销命令的那一刻到进入睡眠模式之前引入人为延迟,但是在某些用户帐户配置了漫游配置文件的情况下,注销过程可能远远超过我的延迟。

那么有什么建议可以知道是否“确定”所有用户帐户都已注销?

【问题讨论】:

  • @IvanGrynko:这种方法对我并不适用。我试过了,当它只有 1 个时,他的方法在我的 Windows 8 桌面上返回 7 个登录用户。

标签: c++ windows winapi terminal-services


【解决方案1】:

更好的选择可能是定期(每 3-5 分钟)检查是否有任何互动会话处于活动状态。如果没有 - 让系统进入睡眠状态。

每隔几分钟枚举交互式会话的服务的开销非常小,以至于我认为开发某种形式的高级事件处理系统不值得。

【讨论】:

    猜你喜欢
    • 2015-01-29
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2016-10-23
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多