用VC/C++判断电脑有没有 无线网卡 的简单方法

用native wifi api吧。
VS2008下:
加入:
#include "Wlanapi.h"
#pragma comment(lib, "Wlanapi.lib")
变量:
DWORD pdwNegotiatedVersion;
HANDLE phClientHandle;
PWLAN_INTERFACE_INFO_LIST wiiList;
然后用下面语句打开handle.
WlanOpenHandle (1,NULL,&pdwNegotiatedVersion,&phClientHandle);
用WlanEnumInterfaces来枚举interfaces到一个WLAN_INTERFACE_INFO_LIST结构。如下:
WlanEnumInterfaces(phClientHandle,NULL,&wiiList);
然后wiiList->dwNumberOfItems的值就是无线网卡的数量。
VC6的时候没有Wlanapi.h头文件。可以直接LoadLibrary("wlanapi.dll"),然后GetProcAddress取得以上两个函数指针。














#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( "普通网卡\n " );
if ( dwBuf == 2 )
printf( "无线网卡\n " );
return 0;
}

posted on 2010-12-16 08:45 wrh 阅读(1450) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

统计

常用链接

留言簿(18)

随笔档案

文章档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜