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

时间:2010-06-16 12:51:00

标签: c# windows networking

在Windows 7上的

我可以通过“网络连接管理器”面板启用和禁用连接(在系统设置中)。

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

1 个答案:

答案 0 :(得分: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();
     }
    }