【发布时间】:2016-10-04 20:29:44
【问题描述】:
我有一台运行 Windows 7 的笔记本电脑,但最终可能会迁移到 Windows 10。我想拥有自己的实用程序来检测笔记本电脑何时对接或取消对接,然后更改电源配置文件设置。我已经将它设置为在标准电源 Windows 配置文件中由电池供电而不是 AC 供电时执行我想要的操作,但是当笔记本电脑在扩展坞上时,我想要一个不同的电源计划,而不是它刚刚插入 AC 适配器和不在扩展坞上。
到目前为止,我有一个工作程序,它在系统托盘中只有一个小图标启动,它会在停靠与取消停靠时进行我想要的更改,但 方式 我确定笔记本电脑已对接是通过在 WM_DEVICECHANGE 发生时查找我已通过 EnumDisplayDevices 调用连接到我的扩展坞的特定硬编码显示器名称(例如“Samsung U32D970Q”)。
主要问题是如果我更换了显示器,程序就会停止工作。我可以在启动时将参数传递给程序,并使用要查找的监视器的名称,但我正在尝试找出是否有更好的方法。我这样做是不是很傻?
操作系统是否有一些 Windows 7+ 功能可以判断笔记本电脑是否在扩展坞上?
【问题讨论】:
-
如果您的扩展坞提供电源,consider monitoring the AC Line Status.
-
@user4581301:谢谢,但是当我在家时,我也通过电源砖提供交流电源。问题是 Windows 涵盖了一个 DC 案例,但我有两个单独的 AC 案例,我试图以不同的方式处理。当不在坞站时,来自坞站的一个交流电和一个来自电源砖的交流电。这可能看起来很傻,但我希望大显示器屏幕在工作时保持在工作状态,以在我的工作台上显示屏幕保护程序上的时间。当我在家时,我希望笔记本电脑的屏幕进入睡眠状态,这样在我的主 PC 上玩游戏或其他东西时,我不会从眼角看到它。
-
一个老问题,但如果有人来到这里,github.com/manutalcual/winredock 你有资源可以做到这一点。顺便说一句,我做了那个软件。
标签: c++ windows visual-c++ power-management