-1

如何禁用/启用互联网连接?只是想禁用互联网连接而已LAN

我试过了,但它不工作

string[] connections = DisconnectWrapper.Connections();           
for (int i = 0; i < connections.Length; i++)
{
    try
    {
        DisconnectWrapper.CloseConnection(connections[i]);
    }
    catch (Exception ex)
    { }
}
4

2 回答 2

3

您可以使用WMI

添加System.Management到您的引用并尝试此代码

 SelectQuery wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionId != NULL");
            ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(wmiQuery);
            foreach (ManagementObject item in searchProcedure.Get())
            {
                if (((string)item["NetConnectionId"]) == "Local Network Connection")
                {
                    item.InvokeMethod("Disable", null);
                }
            }

还有另一篇文章:以编程方式禁用/启用网络连接

WMI您可以禁用和启用所有网络连接。

编辑:

        using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"select * from Win32_NetworkAdapter"))
        {
            ManagementObjectCollection results = searcher.Get();
            foreach (ManagementObject obj in results)
            {
                System.Console.WriteLine("Found adapter {0} :", obj["Caption"]);
                System.Console.WriteLine("Disabling adapter ...");
                object[] param = new object[0];
                obj.InvokeMethod("Disable",param);
                System.Console.WriteLine("Done.");
            }
            Console.ReadLine();
        }

请注意,某些适配器无法禁用。

于 2013-04-06T15:56:15.227 回答
0

您可以通过对 netsh 进行 shell 调用来完成您需要的操作。

例子:

netsh interface set interface "Target Adapter Name" enabled
netsh interface set interface "Target Adapter Name" disabled

Netsh 会阻塞,所以如果你等待你生成的进程退出,你就会知道它已经完成了。它需要管理员权限,因此您的进程也需要它。Netsh 会将其退出代码设置为 0 成功或 1 失败,因此您可以在需要时检查反馈。

于 2014-04-15T17:19:13.140 回答