Qt显示笔记本wifi列表 windows
来源:互联网 发布:五大流氓知乎 编辑:程序博客网 时间:2024/05/04 04:10
关于怎样设计你程序显示自己电脑的wifi列表的问题,微软已经提供相关api.这里也是参考网上的资源在这里用Qt实现。
首先用到的几个类:
PWLAN_INTERFACE_INFO_LIST
PWLAN_INTERFACE_INFO
PWLAN_AVAILABLE_NETWORK_LIST
PWLAN_AVAILABLE_NETWORK
WLAN_CONNECTION_PARAMETERS
关于这几个类得说明以及使用msdn上都有描述。这里直接上代码:
wifi::wifi(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
PWLAN_INTERFACE_INFO_LIST pIfList = NULL;
PWLAN_INTERFACE_INFO pIfInfo = NULL;
PWLAN_AVAILABLE_NETWORK_LIST pBssList = NULL;
PWLAN_AVAILABLE_NETWORK pBssEntry = NULL;
unsigned long dwResult,dwCurVersion,dwMaxClient=2;
void *hCilent = NULL;
dwResult = WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion,&hCilent);
if (dwResult != ERROR_SUCCESS) {
wprintf(L"WlanOpenHandle failed with error: %u\n", dwResult);
return ;
}
dwResult = WlanEnumInterfaces(hCilent, NULL, &pIfList);
if (dwResult != ERROR_SUCCESS)
{
// wprintf(L"WlanEnumInterfaces failed with error: %u\n", dwResult);
return ;
// You can use FormatMessage here to find out why the function failed
}
else
{
for (int i = 0; i < (int) pIfList->dwNumberOfItems; i++)
{
pIfInfo = (WLAN_INTERFACE_INFO *) &pIfList->InterfaceInfo[i];
}
}
dwResult = WlanGetAvailableNetworkList(hCilent, &pIfInfo->InterfaceGuid,0, NULL, &pBssList);
if (dwResult != ERROR_SUCCESS)
{
//wprintf(L"WlanGetAvailableNetworkList failed with error: %u\n",dwResult);
dwResult = 1;
// You can use FormatMessage to find out why the function failed
} else {
//wprintf(L"WLAN_AVAILABLE_NETWORK_LIST for this interface\n");
// wprintf(L" Num Entries: %lu\n\n", pBssList->dwNumberOfItems);
for (int j = 0; j < pBssList->dwNumberOfItems; j++) {
pBssEntry = (WLAN_AVAILABLE_NETWORK *) & pBssList->Network[j];
// wprintf(L" Profile Name[%u]: %ws\n", j, pBssEntry->strProfileName);
qDebug()<<pBssEntry->strProfileName;
char *ch = UnicodeToAnsi(pBssEntry->strProfileName);
QString str;
str.append(ch);
qDebug()<<str;
char *p;
if (pBssEntry->dot11Ssid.uSSIDLength != 0)
{
p = (char*) pBssEntry->dot11Ssid.ucSSID;
QString str1;
str1.append(p);
qDebug()<<str1;
}
}
}
}
wifi::~wifi()
{
}
关于连接请参考msdn http://msdn.microsoft.com/en-us/library/windows/desktop/ms706613(v=vs.85).aspx
PS:关于Qt怎么使用windows的api,这里笔者取了一下巧,就是用VS去写了Qt的程序,只要在项目属性连接器输入里加入wlanapi.lib;ole32.lib;就可以了,如果用QtCreater写的话,请参考http://bbs.csdn.net/topics/360069804
- Qt显示笔记本wifi列表 windows
- windows下笔记本共享wifi工具
- 笔记本 windows XP系统设置wifi热点
- windows笔记本设置wifi热点(win10篇)
- android wifi讲解 wifi列表显示
- android wifi讲解 wifi列表显示
- android wifi讲解 wifi列表显示
- android wifi讲解 wifi列表显示
- android wifi讲解 wifi列表显示
- Android中wifi讲解 显示wifi列表
- android wifi讲解 wifi列表显示
- 笔记本wifi
- Qt Windows 7(Win7)下获取并显示电池电量和WIFI信号强度
- Qt Windows 7(Win7)下获取并显示电池电量和WIFI信号强度
- 显示笔记本所有连接过的WiFi密码
- windows下用netsh工具设置笔记本wifi热点
- Android显示WIFI列表功能实现
- Android 实现WiFi列表显示与连接
- 无插件使用Eclipse和Resin调试WEB应用
- HDU 4734
- win下编写的php在linux上运行为cli的注意事项
- 开始 C++ Primer 学习之路
- I 前言
- Qt显示笔记本wifi列表 windows
- 推荐系统自己去实践------第一个初步推荐系统movie
- redis--6--Redis的配置与启动
- Java 内部类总结
- 集群式游戏服务器架构方案设计开发
- UVa 573 The Snail (模拟)
- mapreduce源码分析总结
- Google 2014校招测试赛 Problem C
- emmet使用方法简介