Программно включить / отключить соединение - PullRequest
10 голосов
/ 16 июня 2010

в Windows 7 Я могу включать и отключать подключения через панель диспетчера сетевых подключений (в настройках системы).

Как я могу сделать это программно в C #? Спасибо

1 Ответ

15 голосов
/ 16 июня 2010

Этого можно добиться в C #, используя WMI и класс WMI Win32_NetworkAdapter. Класс Win32_NetworkAdapter имеет методы Enable и Disable, которые могут выполняться на выбранном сетевом интерфейсе.

Пример использования можно найти здесь:

http://blog.opennetcf.com/ncowburn/2008/06/24/HOWTODisableEnableNetworkConnectionsProgrammaticallyUnderVista.aspx

ссылка недоступна, но заархивирована по адресу:

http://web.archive.org/web/20120615012706/http://blog.opennetcf.com/ncowburn/2008/06/24/HOWTODisableEnableNetworkConnectionsProgrammaticallyUnderVista.aspx

Вкратце, шаги для этого:

  1. Создание оболочки для класса из командной строки VS

    mgmtclassgen Win32_NetworkAdapter /L CS -p NetworkAdapter.cs
  2. Переход через адаптеры:

    SelectQuery query = new SelectQuery("Win32_NetworkAdapter", "NetConnectionStatus=2");
    ManagementObjectSearcher search = new ManagementObjectSearcher(query);
    foreach(ManagementObject result in search.Get()) {
     NetworkAdapter adapter = new NetworkAdapter(result);
     // Identify the adapter you wish to disable here. 
     // In particular, check the AdapterType and 
     // Description properties.
     // Here, we're selecting the LAN adapters.
     if (adapter.AdapterType.Contains("Ethernet 802.3")) {
        adapter.Disable();
     }
    }</p></li>
    </ol>
    
    <p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...