V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
PUBG98k
V2EX  ›  程序员

c++ 如何判断用户是否 启用了 睡眠功能呢?

  •  
  •   PUBG98k · 2020-10-27 03:52:33 +08:00 · 1246 次点击
    这是一个创建于 1523 天前的主题,其中的信息可能已经有所发展或是发生改变。
    c++ 如何判断用户是否 启用了 睡眠功能呢?
    有哪个大佬知道 xp - 10 通用的查询 api?
    第 1 条附言  ·  2020-10-27 06:04:47 +08:00
    已经解决.
    PUBG98k
        2
    PUBG98k  
    OP
       2020-10-27 04:10:48 +08:00
    @xupefei 这个注册表信息好像仅适用于 WinCE 系统.
    skydiver
        3
    skydiver  
       2020-10-27 04:25:35 +08:00 via Android   ❤️ 1
    @PUBG98k 并不是,点进去链接才是那个系统的文档
    PUBG98k
        4
    PUBG98k  
    OP
       2020-10-27 04:39:24 +08:00
    @skydiver 感谢回复.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\Timeouts
    HKEY_CURRENT_USER\ControlPanel\Power
    这 2 个注册表项在我的 Win10,虚拟机 Win7 都没有~应该就是 ce 系统的~
    skydiver
        5
    skydiver  
       2020-10-27 04:45:21 +08:00 via Android
    看起来这个网页是给 mobile 的,然后里面再点进去是 CE 的
    PUBG98k
        7
    PUBG98k  
    OP
       2020-10-27 06:04:30 +08:00
    感谢楼上,找到了.在这个位置.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c\238c9fa8-0aad-41ed-83f4-97be242c8f20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da

    ACSettingIndex 的值就是 睡眠时间.0 是没开启
    ysc3839
        8
    ysc3839  
       2020-10-27 10:45:26 +08:00 via Android
    正确做法应该是用 Power Scheme 相关的 API 去读,注册表不保证兼容性的。
    曾经写过一个连接外接屏幕时关闭合盖睡眠的小工具,里面就用到了 Power Scheme 相关的 API 。
    https://github.com/ysc3839/ProjectionAwake

    需要注意的是,这套 API 是从 Vista 开始才有的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2825 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 07:10 · PVG 15:10 · LAX 23:10 · JFK 02:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.