导航:首页 > 编程语言 > 禁用网卡编程实现

禁用网卡编程实现

发布时间:2022-03-07 02:04:17

① 禁用网卡

汗,不就是禁用网卡吗?
哪有那么难啊
在网上邻居上按右键-->属性-->在网络连接上按右键,里面就有禁用啊!

② 如何自动启用或禁用网卡

什么程序我就不会了,不过可以教你个好办法.按键精灵会有吧?只要这台服务器没有别的人在玩游戏,那么按键精灵可以做到你要求的这些事.
你一个网管用这个程序应该一点难度也没有的.

③ AU3编程-多网卡中怎样禁用指定网卡【非活动网卡】

重新启动系统,在"设备管理器"中,选定网络适配器图标,点击鼠标右键,选择"禁用"(

④ 怎么通过编写程序禁用网卡,并且网卡禁用后不能被手动启动

void EnumDevices(HDEVINFO hDevInfo){SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)}; LPOLESTR guid; char devName[128]; char instanceId[128]; for (int i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++){StringFromCLSID(DeviceInfoData.ClassGuid,&guid); SetupDiClassNameFromGuid(&DeviceInfoData.ClassGuid,devName,128,NULL); if(!strcmp(devName,Net)){SetupDiGetDeviceInstanceId(hDevInfo,&DeviceInfoData,instanceId,128,NULL); if(!strncmp(instanceId,PCI,3)){wprintf(L%s\n,guid); printf(%s\n,devName); printf(%s\n,instanceId); SP_PROPCHANGE_PARAMS params = {sizeof(SP_CLASSINSTALL_HEADER )}; params.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE; params.Scope = DICS_FLAG_CONFIGSPECIFIC; // params.StateChange = DICS_ENABLE; //禁用:DICS_DISABLE,DICS_ENABLE启用 params.StateChange = DICS_DISABLE; //禁用:DICS_DISABLE,DICS_ENABLE启用 params.HwProfile = 0; SetupDiSetClassInstallParams(hDevInfo, &DeviceInfoData, (SP_CLASSINSTALL_HEADER*)&params, sizeof(SP_PROPCHANGE_PARAMS)); SetupDiChangeState(hDevInfo, &DeviceInfoData);}}CoTaskMemFree(guid);}}int main(int argc, char* argv[]){HDEVINFO hDevInfo = INVALID_HANDLE_VALUE; hDevInfo = SetupDiGetClassDevs(NULL,NULL,NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES); if(INVALID_HANDLE_VALUE == hDevInfo) return GetLastError(); EnumDevices(hDevInfo); ------解决方案-------------------------------------------------------- 把网卡驱动删了不就行了 ------解决方案-------------------------------------------------------- WDM的class 过滤驱动,{4D36E972-E325-11CE-BFC1-08002bE10318} 或者设备过滤驱动,对指定网络适配器设备进行过滤

⑤ 如何禁用、启用本地连接(网卡)

1、首先,在电脑桌面左下角的“开始”按钮中找到“控制面板”选项。

⑥ 如何编程实现自动启用禁用网卡

楼上面上面的白痴,KAO!
我发了3个贴
有2个就有你的恢复,CAO,都是没用的东西

⑦ 如何编程实现启用禁用网卡

/*****************************************************************************
演示如何编程实现启用禁用网卡
Mady
By ZwelL
2004.7.29
[email protected]
*****************************************************************************/
#include
#include
#include
#include
#pragma
comment(lib,”ws2_32.lib”)
#pragma
comment(lib,”setupapi.lib”)

BOOL DisableNetInterface(bool bStatus)
{
IN LPTSTR HardwareId
;

//硬件ComponentId,注册表地址:system\currentcontrolset\class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0000

HardwareId=”PCI\\VEN_10EC&DEV_8139&SUBSYS_813910EC” ;

DWORD NewState ;

if(bStatus)
{

NewState=DICS_DISABLE ;
//禁用
}
else

{
NewState=DICS_ENABLE ;
//启用
}

//调用ddk函数,来禁用网卡

DWORD i,err ;
BOOL Found=false
;

HDEVINFO hDevInfo ;
SP_DEVINFO_DATA spDevInfoData
;

//访问系统的硬件库

hDevInfo=SetupDiGetClassDevs(NULL,”PCI”,NULL,DIGCF_ALLCLASSES|DIGCF_PRESENT);

if(hDevInfo==INVALID_HANDLE_VALUE)
{

printf(”访问系统硬件出错!”);
return false ;
}

//枚举硬件,获得需要的接口
spDevInfoData.cbSize=sizeof(SP_DEVINFO_DATA);

for(i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&spDevInfoData);i++)

{
DWORD DataT ;
LPTSTR p,buffer=NULL ;
DWORD
buffersize=0 ;

//获得硬件的属性值

while(!(
hDevInfo,
&spDevInfoData,
SPDRP_HARDWAREID,
&DataT,
(PBYTE)buffer,
buffersize,
&buffersize))

{
if(GetLastError()==ERROR_INVALID_DATA)

{
//不存在HardwareID. Continue.
break
;
}
else
if(GetLastError()==ERROR_INSUFFICIENT_BUFFER)

{
//buffer size不对.

if(buffer)
LocalFree(buffer);

buffer=(char*)LocalAlloc(LPTR,buffersize);
}

else
{
//未知错误
goto
cleanup_DeviceInfo ;
}
}

if(GetLastError()==ERROR_INVALID_DATA)
continue
;

//比较,找到和网卡ID相同的项

for(p=buffer;*p&&(p<&buffer[buffersize]);p+=lstrlen(p)+sizeof(TCHAR))

{

if(!_tcscmp(HardwareId,p))

{
//找到网卡
Found=TRUE ;

break ;
}
}

if(buffer)
LocalFree(buffer);

//如果相等
if(Found)
{

//禁用该设备

SP_PROPCHANGE_PARAMS spPropChangeParams
;

spPropChangeParams.ClassInstallHeader.cbSize=sizeof(SP_CLASSINSTALL_HEADER);

spPropChangeParams.ClassInstallHeader.InstallFunction=DIF_PROPERTYCHANGE
;
spPropChangeParams.Scope=DICS_FLAG_GLOBAL ;

spPropChangeParams.StateChange=NewState ;

//禁用:DICS_DISABLE,DICS_ENABLE启用

//

if(!SetupDiSetClassInstallParams(hDevInfo,&spDevInfoData,(SP_CLASSINSTALL_HEADER*)&spPropChangeParams,sizeof(spPropChangeParams)))

{
DWORD errorcode=GetLastError();

}

if(!SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,hDevInfo,&spDevInfoData))

{
DWORD errorcode=GetLastError();

}

switch(NewState)

{
case DICS_DISABLE
:
printf(”成功禁用网络!”);
break ;
case
DICS_ENABLE :
printf(”成功启用网络!”);
break
;
}

break ;

}

}

//退出时,清理工作环境
cleanup_DeviceInfo
:
err=GetLastError();

SetupDiDestroyDeviceInfoList(hDevInfo);
SetLastError(err);

return true ;
}

void usage(char *exefile)
{
printf(”Usage:%s [-e|-d]\r\n”,
exefile);
printf(”\t-e: Enable the network card.\r\n”);
printf(”\t-d:
Disable the network card.\r\n”);
exit(0);
}

int main(int
argc,char**argv)
{
if(argc<2)
usage(argv[0]);
if(!DisableNetInterface((strstr(argv[1],”-d”)>0?TRUE:FALSE)))
printf(”对网卡操作失败!”);

return 0;
}

//————————————————————————————————————

例子二:

#include <stdio.h>
#include <tchar.h>
#include
<windows.h>
#include <setupapi.h>

#pragma comment (lib,”setupapi”)

#define UnknownDevice TEXT(”<Unknown Device>”)

HDEVINFO hDevInfo = 0;

BOOL StateChange(DWORD NewState, DWORD SelectedItem,HDEVINFO
hDevInfo)
{
SP_PROPCHANGE_PARAMS PropChangeParams =
{sizeof(SP_CLASSINSTALL_HEADER)};
SP_DEVINFO_DATA DeviceInfoData =
{sizeof(SP_DEVINFO_DATA)};
HCURSOR hCursor;

//
// This may take a while :^(
//
hCursor =
SetCursor(LoadCursor(NULL, IDC_WAIT));

//
// Get a handle to the Selected Item.
//
if
(!SetupDiEnumDeviceInfo(hDevInfo,SelectedItem,&DeviceInfoData))

{
printf(”EnumDeviceInfo”);
return FALSE;
}

//
// Set the PropChangeParams structure.
//

PropChangeParams.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;

PropChangeParams.Scope = DICS_FLAG_GLOBAL;
PropChangeParams.StateChange =
NewState;

if (!SetupDiSetClassInstallParams(hDevInfo,

&DeviceInfoData,
(SP_CLASSINSTALL_HEADER
*)&PropChangeParams,
sizeof(PropChangeParams)))

{
printf(”SetClassInstallParams”);

SetCursor(hCursor);
return FALSE;
}

//
// Call the ClassInstaller and perform the change.

//
if (!SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,

hDevInfo,
&DeviceInfoData))
{

printf(”SetClassInstallParams”);
SetCursor(hCursor);

return TRUE;
}

SetCursor(hCursor);
return TRUE;
}

BOOL IsClassNet( GUID * ClassGuid )
{
#define MAX_NUM 50

HKEY hKeyClass;
LONG lRet;
char
ClassType[MAX_NUM];
char NetClass[MAX_NUM] = “Net”;
DWORD dwLength =
MAX_NUM,dwType = REG_SZ;

if (hKeyClass =
SetupDiOpenClassRegKey(ClassGuid,KEY_READ))
{
lRet =
RegQueryValueEx(hKeyClass,
TEXT(”Class”),
NULL,
&dwType, LPBYTE(ClassType), &dwLength);

RegCloseKey(hKeyClass);

if (lRet != ERROR_SUCCESS)
return FALSE;

if (!strcmp(ClassType,NetClass))
return TRUE;

}

return FALSE;
}

int main(int argc, char* argv[])
{
if (INVALID_HANDLE_VALUE ==
(hDevInfo =

SetupDiGetClassDevs(NULL,NULL,0,

DIGCF_PRESENT|DIGCF_ALLCLASSES)))
{

printf(”GetClassDevs”);
return 0;
}

DWORD i, Status, Problem;
SP_DEVINFO_DATA DeviceInfoData =
{sizeof(SP_DEVINFO_DATA)};

HKEY hKeyClass;
char DeviceName[200];
for
(i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++)
{
if
(IsClassNet(&DeviceInfoData.ClassGuid))
{
//printf(” the class’s
index is %d\n”,i);

//DICS_DISABLE–>禁用网络
//DICS_ENABLE—>恢复网络
if
(StateChange(DICS_ENABLE,i,hDevInfo))
printf(”.”);
//printf(”NetWork
%s”, (DICS_ENABLE)?”enabled”:”disabled”);

}
}

return 0;
}

⑧ 如何用脚本实时启用、禁用网卡

运行中输入
netsh interface ip set address "连接名称"static 0.0.0.0 0.0.0.0 0.0.0.0 1
最后有一个1,一定要有呀

⑨ 如何利用vc禁用启用网卡本地连接

  1. 右下角选择网络图标,外观是那个显示器样的。

  2. 右键点击网络图标,选择打开网络和共享中心。

  3. 继上步之后,进入网络和共享中心,在左边选择更改适配器设置,点击。

  4. 进入网络连接之后,先择需要进行禁用/启用的网卡,右键点击,在弹出菜单中选择并点击禁用/启用功能即可。


阅读全文

与禁用网卡编程实现相关的资料

热点内容
优信二手车解压后过户 浏览:63
Windows常用c编译器 浏览:780
关于改善国家网络安全的行政命令 浏览:835
安卓如何下载网易荒野pc服 浏览:656
javainetaddress 浏览:106
苹果4s固件下载完了怎么解压 浏览:1005
命令zpa 浏览:288
python编译器小程序 浏览:946
在app上看视频怎么光线调暗 浏览:541
可以中文解压的解压软件 浏览:595
安卓卸载组件应用怎么安装 浏览:914
使用面向对象编程的方式 浏览:341
程序员项目经理的年终总结范文 浏览:932
内衣的加密设计用来干嘛的 浏览:434
淮安数据加密 浏览:294
魔高一丈指标源码 浏览:983
松下php研究所 浏览:169
c回调java 浏览:402
梦幻端游长安地图互通源码 浏览:747
电脑本地文件如何上传服务器 浏览:315