You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用Win32函数获取Windows锁屏超时时间?

获取Windows锁屏后显示屏关闭超时时间的Win32函数方案
  • 要获取锁屏后显示屏自动关闭的超时时间,你需要使用powrprof.dll中的以下函数组合,而非单独调用CallNtPowerInformation:

    1. PowerGetEffectiveScheme:获取当前生效的电源方案GUID
    2. PowerReadACValueIndex/PowerReadDCValueIndex:读取该电源方案中“锁屏后关闭显示器”的AC(接通电源)和DC(电池供电)超时值
  • 对应的关键GUID常量:

    • 电源设置子组:GUID_VIDEO_SUBGROUP = {7516b95f-f776-4464-8c53-06167f40cc99}
    • 锁屏显示器超时设置:GUID_LOCK_SCREEN_DISPLAY_TIMEOUT = {8EC4B3A5-6868-48c2-BE75-4F3044BE88A7}
  • 代码示例片段(C++):

    #include <windows.h>
    #include <powrprof.h>
    #pragma comment(lib, "powrprof.lib")
    
    DWORD GetLockScreenDisplayTimeout(bool isACPower) {
        GUID effectiveScheme;
        DWORD timeout = 0;
        if (PowerGetEffectiveScheme(NULL, &effectiveScheme) == ERROR_SUCCESS) {
            if (isACPower) {
                PowerReadACValueIndex(NULL, &effectiveScheme, &GUID_VIDEO_SUBGROUP, &GUID_LOCK_SCREEN_DISPLAY_TIMEOUT, &timeout);
            } else {
                PowerReadDCValueIndex(NULL, &effectiveScheme, &GUID_VIDEO_SUBGROUP, &GUID_LOCK_SCREEN_DISPLAY_TIMEOUT, &timeout);
            }
            PowerFreeEffectiveScheme(effectiveScheme);
        }
        return timeout; // 返回值单位为秒
    }
    
  • 补充说明:

    • CallNtPowerInformation主要用于读取系统全局电源策略,无法直接获取锁屏场景的细分设置
    • 该超时值默认在Windows 11中为30秒,可通过系统设置修改

内容的提问来源于stack exchange,提问作者adragomir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 06:13:34