首页新闻找找看学习计划

如何通过win32 api 获取 “宽带连接” 的名子?

0
悬赏园豆:10 [已解决问题] 解决于 2015-10-18 15:50

其实也就是获取所有网卡的名字,例如“宽带连接” “本地连接”等,要列出所有,我试了GetAdaptersInfo 和 GetIfTable,在“宽带连接”已经连接的情况下,可以看到能取到“宽带连接”,但如果运行代码时,“宽带连接”是断开状态,就无法取到它。

我做一个监视宽带连接自动拨号的东东,取不到宽带连接可不行的。

10
问题补充:

操作系统 window 10 x64

沧海一杰的主页 沧海一杰 | 初学一级 | 园豆:48
提问于:2015-09-04 16:31
< >
分享
最佳答案
0

可以用WMI查询的:

    static void ShowNetworkAdapter()
    {
        var manageObjects = new ManagementClass("Win32_NetworkAdapter").GetInstances();

        foreach (var obj in manageObjects)
        {
            Console.WriteLine(obj["Name"] + "  >>  "+ obj["NetConnectionID"]);
        }
    }

记得包括带宽,速率等等都用WMI查询的,比用系统API方便。  可以参考下这个页面: http://itknowledgeexchange.techtarget.com/powershell/wmi-and-network-adapters-1/

 

收获园豆:10
天方 | 大侠五级 |园豆:5264 | 2015-09-04 17:49

不行,取不到我正在使用的“宽带连接”,我的代码如下:

Set objWMIService = GetObject("winmgmts:")
    Set colNicConfig = objWMIService.ExecQuery("SELECT * FROM " & "Win32_NetworkAdapterConfiguration")
    For Each objNicConfig In colNicConfig
      Debug.Print "Network Adapter: " & objNicConfig.Caption
     Debug.Print "  IP Address(es):"
      If Not IsNull(objNicConfig.IPAddress) Then
        For Each strIPAddress In objNicConfig.IPAddress
          Debug.Print "    " & strIPAddress
        Next
      End If
    Next
沧海一杰 | 园豆:48 (初学一级) | 2015-09-04 19:02

@沧海一杰: 你和我用的是不一样的,用我给的代码试试。我是测试过的,能取到所有的网卡的名称的,就是代码中的obj["NetConnectionID"]。

天方 | 园豆:5264 (大侠五级) | 2015-09-04 19:22

@天方: 老兄,你有试过在“宽带连接”断开的情况下能娶到吗?我已经试了,你的方法也不行。

沧海一杰 | 园豆:48 (初学一级) | 2015-09-04 19:25

@天方:  我现在写的非托管代码,你给的该不会是C#专用的吧?

沧海一杰 | 园豆:48 (初学一级) | 2015-09-04 19:26

@沧海一杰: 就是回答了,分就给你了。

沧海一杰 | 园豆:48 (初学一级) | 2015-10-18 15:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册