Vb.net - Показать каждый сетевой адаптер, включен или отключен - PullRequest
1 голос
/ 29 января 2011

Я пытаюсь отобразить сетевые адаптеры на компьютере, на котором работает это приложение. Для этого я хочу иметь возможность отображать все сетевые адаптеры, независимо от их статуса. Затем я хочу иметь возможность включать и отключать адаптеры нажатием кнопки.

Я пытался использовать 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 Ответ

2 голосов
/ 30 января 2011

То, что вы пытаетесь сделать, невозможно. Когда вы отключаете сетевой интерфейс, операционная система скрывает его от приложений. Это имеет смысл, поскольку вы не можете использовать . Единственный способ увидеть это в папке оболочки «Мои сетевые адреса» (или как они решили назвать ее сейчас).

Этот отчет об ошибке в MSDN, похоже, удачно описывает вашу проблему. Он был закрыт как «по замыслу».

Документация даже объясняет, что возвращаемое значение:

Массив NetworkInterface, который содержит объекты, описывающие доступные сетевые интерфейсы, или пустой массив, если интерфейсы не обнаружены.

...