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

我尝试了以下方法:

  • P/调用GetCurrentHwProfile函数。
  • P/调用CM_Is_Dock_Station_Present函数。
  • 在WMI的Win32_SystemEnclosure中寻找扩展坞底座类型。

  • 不幸的是,这些似乎都无法在“一刀切”的情况下工作。它们可以用于我的某些测试设备,但不适用于其他设备。

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

    最佳答案

    没有通用的方式可以告诉您这一点。许多扩展坞只是作为USB集线器,连接了一堆设备,并复制了一些IO端口,有些实际上充当了“扩展坞”,允许您尝试使用。

    您可能要做的就是使用完整的硬件配置文件进行检查。要求用户卸下便携式计算机的电源,检查所有连接的设备,要求用户将其固定,然后再次检查。您需要检查PCI和USB总线上的所有可枚举设备。

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

    关于.net - 以编程方式查看移动计算机(笔记本电脑/平板电脑/平板电脑等)是否已连接到扩展坞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12686820/

    10-11 18:58