代码之家  ›  专栏  ›  技术社区  ›  pistacchio

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

  •  10
  • pistacchio  · 技术社区  · 15 年前

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

    如何在C#中以编程方式实现这一点?谢谢

    1 回复  |  直到 15 年前
        1
  •  15
  •   RobS    11 年前

    通过利用WMI和Win32#NetworkAdapter WMI类,您可以在C#中实现这一点。Win32\U 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();
       }
      }