用VC/C++判斷電腦有沒(méi)有 無(wú)線網(wǎng)卡 的簡(jiǎn)單方法
用native wifi api吧。 VS2008下: 加入: #include "Wlanapi.h" #pragma comment(lib, "Wlanapi.lib") 變量: DWORD pdwNegotiatedVersion; HANDLE phClientHandle; PWLAN_INTERFACE_INFO_LIST wiiList; 然后用下面語(yǔ)句打開(kāi)handle. WlanOpenHandle (1,NULL,&pdwNegotiatedVersion,&phClientHandle); 用WlanEnumInterfaces來(lái)枚舉interfaces到一個(gè)WLAN_INTERFACE_INFO_LIST結(jié)構(gòu)。如下: WlanEnumInterfaces(phClientHandle,NULL,&wiiList); 然后wiiList->dwNumberOfItems的值就是無(wú)線網(wǎng)卡的數(shù)量。 VC6的時(shí)候沒(méi)有Wlanapi.h頭文件。可以直接LoadLibrary("wlanapi.dll"),然后GetProcAddress取得以上兩個(gè)函數(shù)指針。
#include <windows.h> #include <stdio.h> int main() { HKEY bKey,hKey; LONG retVal; DWORD dwBuf = 1; DWORD dwLen; char SubKey[] = "System\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}"; char SubKeyValueName[] = "MediaSubType"; bKey = HKEY_LOCAL_MACHINE; retVal = RegOpenKeyEx(bKey,SubKey,0,KEY_ALL_ACCESS,&hKey); if(retVal!=ERROR_SUCCESS) { return -1; } RegQueryValueEx( bKey, SubKeyValueName, 0, 0, (LPBYTE)&dwBuf, &dwLen ); if ( dwBuf == 1 ) printf( "普通網(wǎng)卡\n " ); if ( dwBuf == 2 ) printf( "無(wú)線網(wǎng)卡\n " ); return 0; }
posted on 2010-12-16 08:45 wrh 閱讀(2163) 評(píng)論(0) 編輯 收藏 引用