以编程方式查看移动计算机(笔记本电脑/平板电脑等)是否已连接到扩展坞

时间:2012-10-02 08:24:37

标签: .net windows winapi hardware

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

我尝试了以下内容:

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

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

2 个答案:

答案 0 :(得分:3)

没有通用的方法来说明这一点。许多扩展坞只是作为USB集线器出现,其中连接了一堆设备并复制了一些IO端口,有些实际上表现为“扩展坞”,这将允许您已经尝试过的内容。

您可能需要做的是使用完整的硬件配置文件进行检查。要求用户移除笔记本电脑,检查所有连接的设备,要求用户将其停靠,然后再次检查。您需要检查PCI和USB总线上的所有可枚举设备。

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

答案 1 :(得分:1)

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