问题描述
我想知道如何检索(最好使用 C# API)移动界面的名称即使它已被禁用。
最后一句很重要,因为我所知道的最明显(也是最干净)的解决方案不适用于禁用的接口。
这是我迄今为止尝试过的:
-
System.Net.networkinformation.NetworkInterface
NetworkInterface.GetAllNetworkInterfaces()
仅返回启用接口。 -
WMI 查询
Win32_NetworkAdapter
new ManagementObjectSearcher( "SELECT NetConnectionID FROM Win32_NetworkAdapter Where AdapterTypeId=9" ).Get()
接口名称对应于
NetConnectionID
并且AdapterTypeId
= 9 对应于无线一个所以上面的查询应该给我我想要的......除了当接口未启用时,AdapterTypeId
的值留空并且查询不返回任何内容。很遗憾,因为NetConnectionID
仍然是正确的,但我没有任何标准来检索它。 (加入也许...?) -
Shell 命令
同样的问题。
netsh mbn show interfaces
...在目标机器上返回
Le système dispose d'1 interface : Nom : Cellulaire Description : Sierra Wireless Mobile broadband Network Adapter GUID : {AAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAA} Adresse physique : 00:00:00:00:00:00 Contexte PDP supplémentaire : non (interface physique) ...
...当界面仅启用时!再来一次!
此外,他的响应依赖于语言(此处为法语),因此恕我直言,解析更加脆弱和复杂,因为很可能某些机器是用另一种语言配置的。
我宁愿避免这种可能在一种配置下工作而在另一种配置下失败的解决方案。
注意:它应该在 Windows 7 和 Windows 10 上运行的机器
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)