程式禁用啟用網路 網絡卡

2021-04-24 14:21:50 字數 1693 閱讀 2585

關於c++程式實現禁用啟用網路/網絡卡,我四月份好像貼出過乙個函式,結果後來搞得網上到處都是。好些人還在給我mail問我一些相關的問題,現在把已經修改好的函式再貼一次。

char sznetname[512];

memset(sznetname,0x00,512);

char sznettype[512];

memset(sznettype,0x00,512);

//獲得網絡卡型別

getprivateprofilestring("netcard","type","-1",sznettype,sizeof(sznettype),".//configinfo.ini");

//獲得網絡卡描述名稱

getprivateprofilestring("netcard","name","-1",sznetname,sizeof(sznetname),".//configinfo.ini");

devicedesc=sznetname;

dword newstate;

if(bstatus)

else

//呼叫ddk函式,來禁用網絡卡

dword i,err;

bool found=false;

hdevinfo hdevinfo;

sp_devinfo_data spdevinfodata;

//訪問系統的硬體庫

//digcf_present

//"pcmcia"

// hdevinfo=setupdigetclassdevs(null,"pci",null,digcf_allclasses );

hdevinfo=setupdigetclassdevs(null,sznettype,null,digcf_allclasses );

if (hdevinfo == invalid_handle_value)

//列舉硬體,獲得需要的介面

spdevinfodata.cbsize = sizeof(sp_devinfo_data);

for (i=0;setupdienumdeviceinfo(hdevinfo,i,&spdevinfodata);i++)

else if (getlasterror() == error_insufficient_buffer)

else

}if (getlasterror() == error_invalid_data)

continue;

//比較,找到和配置裝置相同的項

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

}if (buffer)

localfree(buffer);

//如果相等

if (found)

if(!setupdicallclassinstaller(dif_propertychange,hdevinfo,&spdevinfodata))

switch(newstate)

break;

}//退出時,清理工作環境

cleanup_deviceinfo:

err = getlasterror();

setupdidestroydeviceinfolist(hdevinfo);

setlasterror(err);

return true;

}

用程式禁用與啟用網絡卡

2006 08 08 13 51 863人閱讀收 藏舉報bool disable netcard bool bstatus else 呼叫ddk函式,來禁用網絡卡 dword i bool found false hdevinfo hdevinfo sp devinfo data spdevinfo...

網絡卡禁用和啟用

2010 11 10 21 34 23 include include include setupapi.h include objbase.h include pragma comment lib,setupapi.lib void enumdevices hdevinfo hdevinfo lp...

Vbs 禁用啟用網絡卡

vbs 禁用啟用網絡卡 在實際工作中,經常碰到需要通過指令碼啟用禁用網絡卡的情況,在網上找了乙個指令碼,實際是通過模擬鍵盤操作來啟用禁用,但對於多種系統和比較複雜的情況操作性不好。還有一種思路,就是利用 netsh 命令實現,但是 netsh 命令必須得到網絡卡的名字,不同伺服器,網絡卡的名字並不一...