導航:首頁 > 編程語言 > 禁用網卡編程實現

禁用網卡編程實現

發布時間: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. 進入網路連接之後,先擇需要進行禁用/啟用的網卡,右鍵點擊,在彈出菜單中選擇並點擊禁用/啟用功能即可。


閱讀全文

與禁用網卡編程實現相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:62
Windows常用c編譯器 瀏覽:778
關於改善國家網路安全的行政命令 瀏覽:833
安卓如何下載網易荒野pc服 瀏覽:654
javainetaddress 瀏覽:104
蘋果4s固件下載完了怎麼解壓 瀏覽:1003
命令zpa 瀏覽:286
python編譯器小程序 瀏覽:945
在app上看視頻怎麼光線調暗 瀏覽:540
可以中文解壓的解壓軟體 瀏覽:593
安卓卸載組件應用怎麼安裝 瀏覽:913
使用面向對象編程的方式 瀏覽:340
程序員項目經理的年終總結範文 瀏覽:930
內衣的加密設計用來幹嘛的 瀏覽:433
淮安數據加密 瀏覽:292
魔高一丈指標源碼 瀏覽:982
松下php研究所 瀏覽:168
c回調java 瀏覽:401
夢幻端游長安地圖互通源碼 瀏覽:746
電腦本地文件如何上傳伺服器 瀏覽:314