1. //禁用 SetNetworkAdapter(False)
  2. //启用 SetNetworkAdapter(True)
  3. //添加引用system32/shell32.dll
  4. private static bool SetNetworkAdapter(bool status)
  5. {
  6. const string discVerb = "停用(&B)"; // "停用(&B)";
  7. const string connVerb = "启用(&A)"; // "启用(&A)";
  8. const string network = "网络连接"; //"网络连接";
  9. const string networkConnection = "VMware Network Adapter VMnet1"; // "本地连接"
  10.  
  11. string sVerb = null;
  12.  
  13. if (status)
  14. {
  15. sVerb = connVerb;
  16. }
  17. else
  18. {
  19. sVerb = discVerb;
  20. }
  21.  
  22. Shell32.Shell sh = new Shell32.Shell();
  23. Shell32.Folder folder = sh.NameSpace(Shell32.ShellSpecialFolderConstants.ssfCONTROLS);
  24.  
  25. try
  26. {
  27. //进入控制面板的所有选项
  28. foreach (Shell32.FolderItem myItem in folder.Items())
  29. {
  30. //进入网络连接
  31. if (myItem.Name == network)
  32. {
  33. Shell32.Folder fd = (Shell32.Folder)myItem.GetFolder;
  34. foreach (Shell32.FolderItem fi in fd.Items())
  35. {
  36. //找到本地连接
  37. if ((fi.Name == networkConnection))
  38. {
  39. //找本地连接的所有右键功能菜单
  40. foreach (Shell32.FolderItemVerb Fib in fi.Verbs())
  41. {
  42. if (Fib.Name == sVerb)
  43. {
  44. Fib.DoIt();
  45. return true;
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }
  52. }
  53. catch (Exception e)
  54. {
  55. Console.WriteLine(e.Message);
  56. return false;
  57. }
  58. return true;
  59. }

第一种出处:http://blog.csdn.net/leon_ice/article/details/4426278

再来一种方式 其实大体上是一样的 只不过第二种个人觉得比较赞 win7也适用

  1. /// <summary>
  2. /// 启用网络
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void btn_StartNet_Click(object sender, EventArgs e)
  7. {
  8. //SetNetworkAdapter(true);
  9.  
  10. SetTest("本地连接", "启用"); // SetTest("本地连接", "禁用");
  11. }
  12.  
  13. private void SetTest(string netWorkName, string operation)
  14. {
  15. Shell32.Shell shell = new Shell32.ShellClass();
  16. Shell32.Folder folder = shell.NameSpace(49);
  17. foreach (Shell32.FolderItem fi in folder.Items())
  18. {
  19. if (fi.Name != netWorkName)
  20. continue;
  21. Shell32.ShellFolderItem folderItem = (Shell32.ShellFolderItem)fi;
  22. foreach (Shell32.FolderItemVerb fiv in folderItem.Verbs())
  23. {
  24. if (!fiv.Name.Contains(operation))
  25. continue;
  26. else
  27. {
  28. fiv.DoIt();
  29. Thread.Sleep(1000);
  30. break;
  31. }
  32. }
  33. }
  34. }

shell32.dll 控制网络的更多相关文章

  1. C#应用Newtonsoft.Json.dll,控制json的时间格式

    原文:C#应用Newtonsoft.Json.dll,控制json的时间格式 var aIsoDateTimeConverter = new IsoDateTimeConverter();aIsoDa ...

  2. Linux模拟控制网络时延

    之前以为可以使用Linux自带的工具模拟控制网络时延,所以上网找了一些资料.后来发现,找到的资料目前只支持在一个网卡上模拟发送报文的时延,而不能设置有差别的网络时延,或者说当要模拟的向A发送的时延与要 ...

  3. 自学工业控制网络之路1.1-工业控制系统发展历程CCS DCS FCS

    返回 自学工业控制网络之路 自学工业控制网络之路1.1-工业控制系统发展历程CCS DCS FCS 工业控制系统是对诸如图像.语音信号等大数据量.高速率传输的要求,又催生了当前在商业领域风靡的以太网与 ...

  4. 自学工业控制网络之路1.2-典型的现场总线介绍PROFIBUS

    返回 自学工业控制网络之路 自学工业控制网络之路1.2-典型的现场总线介绍PROFIBUS 目前看来,现场总线标准不会统一,多标准并存现象将会持续. 现场总线国家标准: 中国的DeviceNet和AS ...

  5. 自学工业控制网络之路1.3-典型的现场总线介绍FF

    返回 自学工业控制网络之路 自学工业控制网络之路1.3-典型的现场总线介绍FF 1994年6月,ISP和WORLDFIP合并成立现场总线基金会FF.1998年,FF基金会开发了HSE 10/100Mb ...

  6. 自学工业控制网络之路1.4-典型的现场总线介绍CAN

    返回 自学工业控制网络之路 自学工业控制网络之路1.4-典型的现场总线介绍CAN 1991年3月,发布了CAN技术贵干v2.0,包含了A.B两部分.CAN2.0A给出报文标准格式,CAN2.0B给出了 ...

  7. 自学工业控制网络之路1.5-典型的现场总线介绍DeviceNet

    返回 自学工业控制网络之路 自学工业控制网络之路1.5-典型的现场总线介绍DeviceNet 2002年10月DeviceNet被批准为中国国家标准GB/T18858.3-2002,并于2003.4. ...

  8. 自学工业控制网络之路1.6-典型的现场总线介绍Interbus

    返回 自学工业控制网络之路 自学工业控制网络之路1.6-典型的现场总线介绍Interbus 1987年正式公布,其主要技术开发者为德国的PhoenixContact公司.1996年,INTERBUS成 ...

  9. 自学工业控制网络之路2.2-PROFINET

    返回 自学工业控制网络之路 自学工业控制网络之路2.2-PROFINET PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技 ...

随机推荐

  1. EXCLE 导入 或 导出

    首先要引用 NPOI.dll   (可在网上下载!)//导入public void OnSubmit()        {            string path = Server.MapPat ...

  2. django+javascrpt+python实现私有云盘

    代码稍后上,先整理下私有云盘的相关功能介绍. 1.登陆界面 2.首页展示,有个人目录.部门目录以及公司目录,针对不用的目录设置不同的权限控制. 3.个人信息展示 4.账号管理.账号信息展示 5.账号添 ...

  3. 微信小程序开发---视图层(View)

    WXML WXML能力: 数据绑定 列表渲染 条件渲染 模板 事件 数据绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可作用于内容,组件属性(需要在双引号之内),控制属性(需要在 ...

  4. SQL Server数据库可能遇到的报错

    1.操作附加操作时报错: 可能的解决方法: 退出数据库,换Windows身份验证登录,就可以了 2.插入语句报错: 1) 2)

  5. Spring 复习第一天

    一.Sping的优点 1.方便解耦,简化开发 ----Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理. 2.AOP编程的支持 ----Spring提供面向切面编程, ...

  6. C#线程的使用(1)

    今天刚开始学习使用线程,把学习过程与新的记录下来. 创建线程: 非常简单,只需声明她并为其提供线程起始点处的方法委托即可: 终止线程: 使用Abort和Join方法来实现: Abort方法:用于永久的 ...

  7. mysql数据库的基本操作:索引、视图,导入和导出,备份和恢复

    1.索引: 索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容. 当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进 ...

  8. unittest中的测试固件

    运行下面的两段代码,看看有什么不同? 第一段: import unittest from selenium import webdriver class F2(unittest.TestCase): ...

  9. IOS - 上APPSTORE为何因IPv6被拒?

    http://blog.csdn.net/wanglixin1999/article/details/52182001

  10. QEMU KVM Libvirt手册(10):Managing Virtual Machines with libvirt

    libvirt is a library that provides a common API for managing popular virtualization solutions, among ...