C#实现启用或停用本地网络连接

发布时间:2012-4-5浏览:

核心提示:C#实现启用或停用本地网络连接

  今天在社区帮别人回答的一个问题,其实之前我也没弄过,今天自己在网上找了些别人的资料,自己改了一下,也是可以实现的。 首先添加MicrosoftShellControlAndAutomation引用,如果你不知道怎么添加MicrosoftShellControlAndAutomation引用,请参考一下步骤: 在你的解决方案资源管理器的bin上右键->选择添加引用->选择->COM标签->找到这个引用按确定即可 然后就可以编写代码了br> +expandsourceviewplaincopytoclipboardprint? staticvoidMain(string[]args)  {    NetWork("本地连接","启用");   }  ///  ///实现启用或停用本地网络链接  ///  /// 本地连接名称  /// 操作,传入“启用”或“停用”  staticvoidNetWork(stringnetWorkName,stringoperation)  {    Shell32.Shellshell=newShell32.ShellClass();     Shell32.Folderfolder=shell.NameSpace(49);     foreach(Shell32.FolderItemfiinfolder.Items())    {      if(fi.Name!=netWorkName)        continue;       Shell32.ShellFolderItemfolderItem=(Shell32.ShellFolderItem)fi;       foreach(Shell32.FolderItemVerbfivinfolderItem.Verbs())      {        if(!fiv.Name.Contains(operation))          continue;         else        {          fiv.DoIt();           Thread.Sleep(1000);           break;         }      }    }  }      staticvoidMain(string[]args)     {       NetWork("本地连接","启用");     }     ///     ///实现启用或停用本地网络链接     ///     /// 本地连接名称     /// 操作,传入“启用”或“停用”     staticvoidNetWork(stringnetWorkName,stringoperation)     {       Shell32.Shellshell=newShell32.ShellClass();       Shell32.Folderfolder=shell.NameSpace(49);       foreach(Shell32.FolderItemfiinfolder.Items())       {         if(fi.Name!=netWorkName)           continue;         Shell32.ShellFolderItemfolderItem=(Shell32.ShellFolderItem)fi;         foreach(Shell32.FolderItemVerbfivinfolderItem.Verbs())         {           if(!fiv.Name.Contains(operation))             continue;           else           {             fiv.DoIt();             Thread.Sleep(1000);             break;           }         }       }     } 代码说明: NetWork方法的两个参数说明:第一个为要进行操作的本地连接名称,第二个为你要进行的操作,传入“启用”或“停用”(win2000下可能是“禁用”) 这个方法的原理是先找到“网络连接”这个虚拟文件夹,其中shell.NameSpace(49)中的49据说是为了避免遍历控制面板,我没有测试过,有兴趣的朋友可以试试。然后找到要控制的本地连接对应的folderitem,然后枚举verb,找到需要的verb后,调用verb的DoIt方法,在DoIt的时候加了一个Thread.Sleep(1000);是为了使程序不会由于遍历的太快而使操作失效,上述方法已测试通过,如有不足之处请指出.
前一篇:定做程序设计
后一篇:使用ASP调用C#写的COM组件
分享到: