Vb.net - 显示启用或禁用的每个网络适配器

时间:2011-01-29 20:35:01

标签: vb.net network-programming wmi

我正在尝试在运行此应用程序的计算机上显示网络适配器。 为此,我希望能够显示所有网络适配器,无论它们具有哪种状态。 然后我希望能够通过按下按钮启用和禁用适配器。

我尝试过使用System.Net.NetworkInformation,但似乎它只包含一个活跃的那个。

' NETWORK ADAPTERS

' Create label
Dim LabelNetworkAdapter As New Label
Dim old As Padding = LabelNetworkAdapter.Margin
LabelNetworkAdapter.Margin = New Padding(old.Left, 8, old.Right, old.Bottom)

' CreateButton
Dim BtnConnectButton As New Button
BtnConnectButton.Height = 23
BtnConnectButton.Width = 60

For Each nic As NetworkInterface In NetworkInterface.GetAllNetworkInterfaces()

    Dim strText As String = nic.Description.ToString
    TableLayoutPanel_Nettverkskort.Controls.Add(LabelNetworkAdapter)
    LabelNetworkAdapter.Text = strText

    TableLayoutPanel_Nettverkskort.Controls.Add(BtnConnectButton)
    BtnConnectButton.Text = "Koble fra"

    Exit For

Next

1 个答案:

答案 0 :(得分:2)

你想要做的是不可能的。禁用网络接口时,操作系统会将其隐藏在应用程序中。这是有道理的,因为你实际上不能使用它。你要看到它的唯一方法是在shell的“我的网络位置”文件夹中(或者他们现在决定称之为的任何内容)。

MSDN上的

This bug report似乎恰如其分地描述了您的问题。它被关闭为“按设计”。

documentation甚至解释了返回值为:

  

NetworkInterface数组,包含描述可用网络接口的对象,如果未检测到接口,则为空数组。