以编程方式启用/禁用连接

pis*_*hio 10 c# windows networking

在Windows 7上,我可以通过"网络连接管理器"面板启用和禁用连接(在系统设置中).

如何在C#中以编程方式执行此操作?谢谢

Tim*_*oyd 15

您可以通过利用WMI和Win32_NetworkAdapter WMI类在C#中实现此目的.Win32_NetworkAdapter类具有可在选定网络接口上执行的启用和禁用方法.

可以在此处找到使用示例:

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();
     }
    }