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

发布于 2024-09-05 12:30:15 字数 82 浏览 4 评论 0原文

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

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

on Windows 7 I can enable and disable connections via the Network Connections Manager panel (in system settings).

How can I do this programmatically in C#? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浊酒尽余欢 2024-09-12 12:30: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 搜索 = new ManagementObjectSearcher(query);
    foreach(Search.Get() 中的 ManagementObject 结果) {
     NetworkAdapter 适配器 = new NetworkAdapter(结果);
     // 在此确定您要禁用的适配器。 
     // 特别是,检查 AdapterType 和 
     // 描述属性。
     // 在这里,我们选择 LAN 适配器。
     if (adapter.AdapterType.Contains("以太网 802.3")) {
        适配器.Disable();
     }
    }

You can achieve this in C# by leveraging WMI and the Win32_NetworkAdapter WMI class. The Win32_NetworkAdapter class has Enable and Disable methods which can be executed on a selected network interface.

An example of usage can be found here:

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

link not available, but archived at:

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

Briefly, steps to do this are:

  1. Generate a wrapper for the class from VS command prompt

    mgmtclassgen Win32_NetworkAdapter /L CS -p NetworkAdapter.cs
  2. Stepping through the adapters:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文