代码拉取完成,页面将自动刷新
/**
* Author: zhouwangsheng
* email: [email protected]
* date: 2023.05.25
*/
#ifndef WIFITOOLS_H
#define WIFITOOLS_H
#include <QObject>
#include <QVector>
#include <QMetaType>
#include <windows.h>
#include "wlanapi.h"
typedef struct {
QString InterfaceDescriptionStr;
GUID InterfaceGuid; // QString::fromWCharArray
WLAN_INTERFACE_STATE isState;
} WLAN_INTERFACE_DEV;
typedef struct {
int pid;
QString strProfileName;
QString SSID;
QString BSSID;
BOOL bNetworkConnectable;
int rssi;
ULONG ulChCenterFrequency;
BOOL bSecurityEnabled;
DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm;
DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm;
DOT11_BSS_TYPE dot11BssType;
DOT11_SSID dot11Ssid;
} WLAN_AP_INFO;
class WifiTools: public QObject
{
Q_OBJECT
public:
// 获取wifi管理类
static WifiTools *instance();
private:
WifiTools();
~WifiTools();
// WLAN通知回调函数
static void OnNotificationCallback(PWLAN_NOTIFICATION_DATA data, PVOID context);
private:
// wifi管理实例
static WifiTools *m_pInstance;
// 到服务端的连接
HANDLE m_pHandle;
// 网卡列表
QVector<WLAN_INTERFACE_DEV> m_WlanInterfaceList;
// AP 列表
QVector<WLAN_AP_INFO> m_ApList;
public:
// 打开到服务端的连接
// 返回值: 若成功返回ERROR_SUCCESS,否则返回失败的代码
DWORD wlanOpenHandle();
DWORD wlanRegisterNotification();
// 列举当前可用的无线网卡
DWORD wlanEnumInterfaces();
// 扫描wifi
DWORD wlanScan(int index=0);
// 获取SSID列表
DWORD wlanGetAvailableNetworkList(int index=0);
// 获取配置文件
DWORD wlanGetProfile(WLAN_AP_INFO apInfo);
// 添加配置文件
DWORD wlanSetProfile(WLAN_AP_INFO apInfo, QString pwd);
DWORD wlanDeleteProfile(WLAN_AP_INFO apInfo);
DWORD wlanConnect(WLAN_AP_INFO apInfo);
// 获取网卡设备列表
QVector<WLAN_INTERFACE_DEV> GetWlanInterfaceList(){ return m_WlanInterfaceList; }
// 获取AP INFO列表
QVector<WLAN_AP_INFO> GetApInfoList(){ return m_ApList; }
int TestFunc();
signals:
void WlanScanComplete(BOOL,GUID);
};
#endif // WIFITOOLS_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。