Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/58: Рейтинг темы: голосов - 58, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 23.11.2011
Сообщений: 8
1

Включить или выключить сетевой адаптер

25.11.2011, 20:35. Просмотров 10709. Ответов 11
Метки нет (Все метки)

Как из кода на C# включить или отключить сетевой интерфейс? Я нашел класс NetworkInterface, но с его помощью можно только увидеть какие есть интерфейсы и в какой они состоянии. Но как изменить это состояние? Какие есть для этого классы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2011, 20:35
Ответы с готовыми решениями:

Datagridview включить/выключить правку программно
Есть 2-а radiobutton. При true одного datagridview можна редактировать (менять значение в ячейках),...

Как включить таймер одной кнопкой, а выключить другой
подскажите пожалуйста, как включить таймер одной кнопкой, а выключить другой?

CheckBox, включить/выключить часть кода
Скажите ,как сделать так, чтобы было что-то на подобие: в чекбокс есть галочка - часть кода...

Как включить или отключить сетевой адаптер?
Приветствую, парни подскажите где взять скрипт под WIN8 который бы запускался через планировщик...

11
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
26.11.2011, 07:10 2
C#
1
2
3
4
5
6
7
8
9
SelectQuery wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionId != NULL");
ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(wmiQuery);
foreach (ManagementObject item in searchProcedure.Get())
{
    if (((string)item["NetConnectionId"]) == "Local Network Connection")
    {
       item.InvokeMethod("Disable", null);
    }
}
есть и другой способ (на мой взгляд немного "деревянный", но тоже вариант )
C#
1
2
3
4
5
6
7
8
static void Enable(string interfaceName)
{
    System.Diagnostics.ProcessStartInfo psi = 
        new System.Diagnostics.ProcessStartInfo("netsh", "interface set interface \"" + interfaceName + "\" enable");
    System.Diagnostics.Process p = new System.Diagnostics.Process();
    p.StartInfo = psi;
    p.Start();
}
можешь еще почитать вот это
http://www.codeproject.com/KB/cs/EverythingInWmi02.aspx
http://msdn.microsoft.com/en-us/library/aa394216
1
0 / 0 / 0
Регистрация: 23.11.2011
Сообщений: 8
26.11.2011, 23:50  [ТС] 3
Спасибо! Способ хороший (первый самый), но в русской винде (string)item["NetConnectionId"] возвращает "Подключение по локальной сети". К тому же его вообще можно переименовать в центре управления сетями...

Из всех свойств удобней пользоваться "AdapterType"

Добавлено через 24 минуты
И еще вопрос к этому: как узнать что какой-то сетевой адаптер подключился, кроме того, чтобы регулярно опрашивать все адаптеры? То есть мне нужно отловить момент, когда в комп вставили кабель, и тогда отключить Wi-Fi, а когда вытащили, обратно его включить?
0
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
27.11.2011, 02:32 4
Что касается изменений состояния, то посмотрите на класс NetworkChange.

А выключение/включение и правда без бубна не сделаешь... а WMI может быть отключен, кстати.
0
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
27.11.2011, 07:59 5
Цитата Сообщение от SpawnDDR Посмотреть сообщение
и правда без бубна не сделаешь
Я тоже думаю что тут бутылка нужена, т.к. сильно сомневаюсь что в мелкософте специально для тебя (думая о неком Ivanov22ivan) замутили какой нить тригер.
0
0 / 0 / 0
Регистрация: 23.11.2011
Сообщений: 8
27.11.2011, 09:41  [ТС] 6
Ну почему же только для меня Ведь когда втыкаешь провод в панели управления сетями показывается что адаптер подключен - а значит какой-то триггер уже есть.
0
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
27.11.2011, 10:09 7
Ivanov22ivan,
Цитата Сообщение от SpawnDDR Посмотреть сообщение
Что касается изменений состояния, то посмотрите на класс NetworkChange.
А включение/отключение по-хорошему только через WinAPI делается.
0
0 / 0 / 0
Регистрация: 23.11.2011
Сообщений: 8
27.11.2011, 10:26  [ТС] 8
Цитата Сообщение от SpawnDDR Посмотреть сообщение
Что касается изменений состояния, то посмотрите на класс NetworkChange.

А выключение/включение и правда без бубна не сделаешь... а WMI может быть отключен, кстати.
Спасибо! Это то что нужно.
0
1 / 1 / 2
Регистрация: 07.03.2012
Сообщений: 77
07.03.2012, 14:43 9
SNOOPYKZ, у меня первый код выдает ошибку в этом месте

item.InvokeMethod("Disable", null); - Этот метод не реализован ни в одном из классов подскажите что делать
0
1 / 1 / 2
Регистрация: 07.03.2012
Сообщений: 77
16.03.2012, 10:45 10
проблема заключалась в том что Винда должна быть не ниже Висты! Есть способы отключения на 2000/XP?
0
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 281
11.04.2015, 22:49 11
Задался вопросом отключения сетевого адаптера.
Код который написал SNOOPYKZ работает, но адаптер не отключает.
C#
1
2
3
4
5
6
7
8
var wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionId != NULL");
            var searchProcedure = new ManagementObjectSearcher(wmiQuery);
            foreach (var o in searchProcedure.Get())
            {
                var item = (ManagementObject)o;
                if (((string)item["NetConnectionId"]) == "Подключение по локальной сети") 
                    item.InvokeMethod("Disable", null);                
            }
Подскажите, что можно сделать?
Windows 7 x64.
0
Ушел с форума
Эксперт С++
16290 / 7356 / 1183
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
11.04.2015, 23:08 12
Единый для всех версий Windows (от 5.1 и выше), способ для вкл\выкл сетевого адаптера
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2015, 23:08

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

Как включить или отключить сетевой адаптер?
Необходимо включить или отключить сетевой адаптер через командную строку, подскажите если ли такая...

Включить / отключить сетевой адаптер от имени оператора сети без ввода пароля
Добрый день уважаемые форумчане !!! Тема уже не раз была Сильно не пинайте - Я с другой стороны...

Можно ли через ардуино по USB посредством кнопки или сенсора включить или выключить монитор компютера?
Можно ли через ардуино по USB при помощи кнопки или сенсора включить или выключить монитор...

Сетевой адаптер или интернет - не работает
Здравствуйте интернет на компе очень тугой, подключен через лан от вай-фая. Сам провод...

Сетевой адаптер или новый модем!
Доброго времени суток! У меня вот такой вот вопрос: Недавно начал гнать интернет. Вылетает часто...

Сетевой адаптер Atheros AR8151 тянет 1 гбит/сек или нет?
Здравствуйте, уважаемые пользователи форума. Ситуация следующая. Прошу прощения, если будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.