当前位置: 首页 > news >正文

C#通过shell32来控制本地连接

 

ContractedBlock.gif ExpandedBlockStart.gif Code
//禁用 SetNetworkAdapter(False)
        
//启用 SetNetworkAdapter(True)

        
//添加引用system32\shell32.dll 
        private static bool SetNetworkAdapter(bool status) {
            
const string discVerb = "Disable"// "停用(&B)";
            const string connVerb = "Enable"// "启用(&A)";
            const string network = "Network Connections"//"网络连接";
            const string networkConnection = "Local Area Connection"// "本地连接"

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

 

转载于:https://www.cnblogs.com/rickiedu/archive/2009/06/23/1509639.html

相关文章:

  • 未能加载文件或程序集 XXX 或它的某一个依赖项
  • Jeffrey Richter开始写CLR Via C#第三版了
  • 每一份生存的背后都是汗水
  • N×N矩阵螺旋打印输出的OO算法
  • lucene.net应用大全
  • 他们在创新,我们在做什么?
  • [翻译]XNA 3.0 Game Programming Recipes之twenty-two
  • 轻松实现二级无刷新联动菜单
  • 全新研发的Web OS操作 Palm智能机Pre不足3000
  • 一步一步自制网线
  • PowerDesigner 学习 收集整理
  • 2009年8月小记(DES加密模式, vim, DOS隐藏与排序,tinyget压力测试,线程等待)
  • .net MySql
  • 关于 VB.NET 中 Obsolete 特性的问题
  • pjsip pjsua test
  • 【Amaple教程】5. 插件
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • github指令
  • java2019面试题北京
  • JavaScript DOM 10 - 滚动
  • JavaScript 奇技淫巧
  • Java深入 - 深入理解Java集合
  • jquery ajax学习笔记
  • Logstash 参考指南(目录)
  • ng6--错误信息小结(持续更新)
  • php ci框架整合银盛支付
  • spring security oauth2 password授权模式
  • Vue--数据传输
  • 爱情 北京女病人
  • 对象管理器(defineProperty)学习笔记
  • 批量截取pdf文件
  • 前端路由实现-history
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • # Java NIO(一)FileChannel
  • #mysql 8.0 踩坑日记
  • $.ajax()方法详解
  • (k8s中)docker netty OOM问题记录
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (十八)SpringBoot之发送QQ邮件
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (转)setTimeout 和 setInterval 的区别
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET中GET与SET的用法
  • @RestControllerAdvice异常统一处理类失效原因
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [20171102]视图v$session中process字段含义
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [AIGC] 开源流程引擎哪个好,如何选型?