c#实现启用禁用本地网络的三种方式-dsd999的专栏-csdn博客_第1页
c#实现启用禁用本地网络的三种方式-dsd999的专栏-csdn博客_第2页
c#实现启用禁用本地网络的三种方式-dsd999的专栏-csdn博客_第3页
c#实现启用禁用本地网络的三种方式-dsd999的专栏-csdn博客_第4页
c#实现启用禁用本地网络的三种方式-dsd999的专栏-csdn博客_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C#实现启用、禁用本地网络的三种方式-dsd999的专栏CSDN 博客C#实现启用、禁用本地网络的三种方式收藏1) 使用 Hnetcfg.dll会生成 3使用 Add Reference, 把 Hnetcfg.dll 导入到工程中, 个引用,主要使用 NETCONLib 。在工程中要 using NETCONLib; / 本段代码不可用 ?2010-11-18下面是实现的代码:NetSharingManagerClass netSharingMgr = newNetSharingManagerClass();INetSharingEveryConnectionCollection connec

2、tions = netSharingMgr.EnumEveryConnection;foreach (INetConnection connection in connections)INetConnectionProps connProps = netSharingMgr.get_NetConnectionProps(connection); if (connProps.MediaType = tagNETCON_MEDIATYPE.NCM_LAN)connection.Disconnect(); / 禁用网络 connection.Connect();/ 启用网络2) 使用 Shell32

3、.dllshell32.dll 是 Windows 壳 Shell 相关应用程序接口动态链接 库文件,用于打开网页和文件。使用 Add Reference, 把 Shell32.dll 导入到工程中。在工程中要 using Shell32;下面是实现的代码:const string discVerb = 停用 (&B); const string connVerb = 启用 (&A); Shell sh = new Shell32.Shell();Folder folder;Folder fd;folder = sh.NameSpace(3);foreach (FolderIt

4、em myItem in folder.Items() if (myItem.Name = 网络连接 )fd = (Folder)myItem.GetFolder;/禁用网络foreach (FolderItem fi in fd.Items()foreach (FolderItemVerb Fib in fi.Verbs()if (Fib.Name = discVerb)Fib.DoIt();break;Thread.Sleep(3000);foreach (FolderItemVerb Fib in fi.Verbs()/启用网络if (Fib.Name = connVerb)Fib.Do

5、It();break;3) 使用 setupapi.dllsetupapi.dll 是流行的安装程序支持相关文件setupapi.dll 不能象前面两个通过 Add Reference 导入到工 程中,只能使用 DllImport代码比较多,贴主要代码DllImport(setupapi.dll)public static extern IntPtrSetupDiGetClassDevsA(ref Guid ClassGuid, UInt32 Enumerator,IntPtr hwndParent, UInt32 Flags);DllImport(setupapi.dll)public st

6、atic extern IntPtr SetupDiGetClassDevs(UInt32 ClassGuid, String e, IntPtr hwndParent, UInt32 Flags);DllImport(setupapi.dll)static extern BooleanSetupDiEnumDeviceInfo(IntPtr DeviceInfoSet, UInt32 MemberIndex,ref SP_DEVINFO_DATA DeviceInfoData);uint NewNetStatus = 0;if (newStatus)NewNetStatus = DICS_E

7、NABLE;elseNewNetStatus = DICS_DISABLE;IntPtr NewDeviceInfoSet;SP_DEVINFO_DATA spData = new SP_DEVINFO_DATA();spData.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(sp Data);UInt32 RequiredSize = 0;byte st1 = new byte1024;uint Data = 0;NewDeviceInfoSet = SetupDiGetClassDevs(0, PCI, IntPt

8、r.Zero, DIGCF_PRESENT | DIGCF_ALLCLASSES); bool bFound = false;for (uint i = 0; SetupDiEnumDeviceInfo(NewDeviceInfoSet, i, ref spData); i+)while(!SetupDiGetDeviceRegistryProperty(NewDeviceInfoSet, ref spData, SPDRP_HARDWAREID, ref Data, st1, 1024, ref RequiredSize)string str = System.Text.Encoding.A

9、SCII.GetString(st1); ; char a = 0 ;string strSPlit = str.Split(a,StringSplitOptions.RemoveEmptyEntries);string HardId = PCIVEN_10EC&DEV_8029&SUBSYS_0000 0000;for (uint j = 0; j < strSPlit.Length; j+)if (strSPlitj = HardId)bFound = true; break;if (bFound) break;SP_PROPCHANGE_PARAMS spPropC

10、hangeParam = new SP_PROPCHANGE_PARAMS(); spPropChangeParam.Scope = DICS_FLAG_GLOBAL; spPropChangeParam.StateChange = NewNetStatus; spPropChangeParam.ClassInstallHeader.cbSize = (UInt32)System.Runtime.InteropServices.Marshal.SizeOf( spPropChangeParam.ClassInstallHeader); spPropChangeParam.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;SetupDiSetClassInstallParams(NewDeviceInfoSet, ref spData, ref spPropChangeParam.ClassInstallHeader, System.Runtime.InteropServices.Marshal.SizeOf(spPropC hangeParam);SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,Ne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论