c# 启用禁用指定网卡

来源:互联网 发布:墨泥模拟驾驶软件 编辑:程序博客网 时间:2024/06/11 00:59

禁用网卡:SetNetworkAdapter(false,"本地连接1");

//需要引用:C:\windows\system32\shell32.dll;

private static bool SetNetworkAdapter(bool status,string networkConnection)

        {
            const string discVerb = "停用(&B)"; // "停用(&B)";    
            const string connVerb = "启用(&A)"; // "启用(&A)";    
            const string network = "网络连接"; //"网络连接";    

            string sVerb = null;


            if (status)
            {
                sVerb = connVerb;
            }
            else
            {
                sVerb = discVerb;
            }

            Shell32.Shell sh = new Shell32.Shell();
            Shell32.Folder folder = sh.NameSpace(Shell32.ShellSpecialFolderConstants.ssfCONTROLS);

            try
            {
                //进入控制面板的所有选项    
                foreach (Shell32.FolderItem myItem in folder.Items())
                {
                    //进入网络连接    
                    if (myItem.Name == network)
                    {
                        Shell32.Folder fd = (Shell32.Folder)myItem.GetFolder;
                        foreach (Shell32.FolderItem fi in fd.Items())
                        {
                            //找到本地连接    
                            if ((fi.Name == networkConnection))
                            {
                                //找本地连接的所有右键功能菜单    
                                foreach (Shell32.FolderItemVerb Fib in fi.Verbs())
                                {
                                    if (Fib.Name == sVerb)
                                    {
                                        Fib.DoIt();
                                        return true;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return false;
            }
            return true;
        }