2

我正在编写一些需要在连接到扩展坞的移动设备上表现不同的软件。因此,我需要一种编程方式来检查计算机是否连接到 C#/.NET 中的扩展坞。

我尝试了以下方法:

不幸的是,这些似乎都不适用于“一刀切”的情况。它们适用于我的一些测试设备,但不适用于其他设备。

我需要在各种设备和扩展坞上运行。是否有任何一致、可靠的方法来检查设备是否停靠在 Windows 中?

4

2 回答 2

3

没有通用的方法来说明这一点。许多坞站只是显示为 USB 集线器,连接了一堆设备并复制了一些 IO 端口,有些确实表现为“坞站”,允许您已经尝试过。

您可能需要做的是使用完整的硬件分析来检查。要求用户断开笔记本电脑的对接,检查所有连接的设备,要求用户将其对接,然后再次检查。您需要检查 PCI 和 USB 总线上的所有可枚举设备。

您还必须做一些魔术来应对可移动设备,因此您必须要求用户在两次检查之前将它们全部删除。

于 2012-10-02T08:36:06.550 回答
1

您可以考虑使用GetCurrentHwProfile并检查返回dwDockInfoHW_PROFILE_INFO的字段。

于 2012-10-02T09:59:39.823 回答