欢迎来到天天文库
浏览记录
ID:9267057
大小:32.50 KB
页数:7页
时间:2018-04-25
《怎么通过程序控制网络连接的禁用和启用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、怎么通过程序控制网络连接的禁用和启用/ 还是帖出来吧, 我可是花了三天时间才搞定了. / #include #include // cfgmgr32.h 在Microsoft Windows 2000 DDK 中. // 要用 CM_Get_DevNode_Status(...) 来查询状态. //--------------------------------------------------------------------------- ty
2、pedef struct NetCardStruct { DWORD Id; // 网卡设备号 AnsiString Name; // 网卡名 bool Disabled; // 当前是否禁用 bool Changed; // 是否更改过 } TNetCardStruct; typedef TNetCardStruct PNetCardStruct; //----------------------------------------------------------------------
3、----- // EnumNetCards 枚举出网卡 //--------------------------------------------------------------------------- void __fastcall EnumNetCards(TList NetDeviceList) { AnsiString DevValue; PNetCardStruct NetCard; DWORD Status, Problem; LPTSTR Buffer = NULL; DWORD BufSize = 0;
4、 HDEVINFO hDevInfo = 0; if (INVALID_HANDLE_VALUE == (hDevInfo = SetupDiGetClassDevs(NULL,NULL,0,DIGCF_PRESENTDIGCF_ALLCLASSES))) return; SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)}; HKEY hKeyClass; char DeviceName[200]; for (DWORD DeviceId=0;
5、 SetupDiEnumDeviceInfo(hDevInfo,DeviceId,&DeviceInfoData); DeviceId++) { if (CM_Get_DevNode_Status(&Status, &Problem, DeviceInfoData.DevInst,0) != CR_SUCCESS) continue; DevValue.SetLength(0); if (GetRegistryProperty(h
6、DevInfo, &DeviceInfoData, SPDRP_CLASS , &Buffer, (PULONG)&BufSize)) DevValue = Buffer; if (DevValue == "Net") { DevValue.SetLength(0); if (GetRegistryProperty(hDevInfo, &DeviceInfoData, SPDRP_ENUMERATOR_NAME , &Buffer, (PULONG)&BufSize))
7、 DevValue = Buffer; if (DevValue != "ROOT") { NetCard = new TNetCardStruct; NetCard->Id = DeviceId; NetCard->Name = "
此文档下载收益归作者所有