gpt4 book ai didi

c++ - 检测笔记本电脑插接或未插接 Windows 7+

转载 作者:可可西里 更新时间:2023-11-01 10:43:12 25 4
gpt4 key购买 nike

我有一台运行 Windows 7 的笔记本电脑,但最终可能会迁移到 Windows 10。我想拥有自己的实用程序来检测笔记本电脑何时连接或断开连接,然后更改电源配置文件设置。我已经将它设置为在标准电源 Windows 配置文件中由电池供电与交流电供电时执行我想要的操作,但是当笔记本电脑在扩展坞上时我想要一个不同的电源计划,而不是它刚插入交流适配器时不在扩展坞上。

到目前为止,我有一个工作程序,启动时系统托盘中只有一个小图标,它会在停靠和未停靠时进行我想要的更改,但方式我'确定笔记本电脑是否插接是通过查找特定的硬编码显示器名称,我已通过 EnumDisplayDevices 调用连接到我的扩展坞(例如“Samsung U32D970Q”)每当 WM_DEVICECHANGE 发生时。

主要问题是如果我更换显示器,程序就会停止工作。我可以在启动时向程序传递一个参数,其中包含要查找的监视器的名称,但我正在尝试找出是否有更好的方法。我这样做是不是很傻?

是否有一些 Windows 7+ 功能可以让操作系统判断笔记本电脑是否在扩展坞上?

最佳答案

我在尝试确定我的笔记本电脑是否已插接时遇到了类似的问题。我的最终目标是将扩展坞的笔记本电脑电源连接到智能插头,并使用 Google Home Assistant 通过语音命令打开/关闭笔记本电脑。要在交流电源恢复时打开笔记本电脑,您需要在 BIOS 中启用“交流电唤醒”。问题是当交流电被切断时,笔记本电脑仍将依靠电池运行。我需要一种方法让后台任务在满足这些条件时正确关闭 Windows:

1) 笔记本电脑的电源由交流变为直流

2) 笔记本电脑连接到扩展坞

以上条件确保笔记本电脑在我刚拔出时不会关机。我发现笔记本电脑插接后,设备管理器中会出现额外的设备。我的解决方案是在停靠/未停靠时枚举所有设备并将结果保存到两个文本文件并使用 windiff 比较它们以查看差异。只需使用一两个“额外设备”差异来确定笔记本电脑是否已插接。

对于我的 DELL 笔记本电脑+坞站设置,“HID-Complaint*”设备在对接时始终存在,而在未对接时丢失。我尝试过使用 CM_Is_Dock_Station_Present 和 GetCurrentHwProfile,但两者都没有正确报告停靠状态。

关于c++ - 检测笔记本电脑插接或未插接 Windows 7+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39861216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com