C++获取Windows系统的WIFI列表

news/2025/2/21 11:29:52/文章来源:https://www.cnblogs.com/shiyixirui/p/18728928

 

之前写过一篇 Qt获取Windows系统的WIFI列表的文章,原理是通过cmd命令来实现的,现在发现直接调用Windows API会更简单,所以记录一下

Qt 获取WIFI列表:https://www.cnblogs.com/shiyixirui/p/17965357

 

代码:

#include <windows.h>
#include <wlanapi.h>
#include <objbase.h>
#include <wtypes.h>#include <iostream>
#include <vector>#pragma comment(lib, "wlanapi.lib")
#pragma comment(lib, "ole32.lib")int test()
{// 初始化COMHRESULT ret = CoInitializeEx(NULL, COINIT_MULTITHREADED);// Handle to the WLAN APIHANDLE hClient = NULL;DWORD dwMaxClient = 2, dwCurVersion = 0, dwResult = 0;// 打开WIFI模块dwResult = WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion, &hClient);if (dwResult != ERROR_SUCCESS) { return; }// 枚举WIFI列表PWLAN_INTERFACE_INFO_LIST pIfList = NULL;dwResult = WlanEnumInterfaces(hClient, NULL, &pIfList);if (dwResult != ERROR_SUCCESS) { WlanCloseHandle(hClient, NULL); return; }// Iterate through the list of interfacesfor (DWORD i = 0; i < pIfList->dwNumberOfItems; i++) {WLAN_INTERFACE_INFO wlanIfInfo = pIfList->InterfaceInfo[i];// Get the list of available networksPWLAN_AVAILABLE_NETWORK_LIST pNetworkList = NULL;dwResult = WlanGetAvailableNetworkList(hClient, &wlanIfInfo.InterfaceGuid, 0, NULL, &pNetworkList);if (dwResult != ERROR_SUCCESS) { continue; }// Iterate through the list of available networksfor (DWORD j = 0; j < pNetworkList->dwNumberOfItems; j++) {WLAN_AVAILABLE_NETWORK network = pNetworkList->Network[j];QString name = QString::fromUtf8(QByteArray(reinterpret_cast<char*>(network.dot11Ssid.ucSSID)));qDebug() << "SSID:" << name;if (!name.isEmpty()) { ui.wifi_name->addItem(name); }            }// 释放 pNetworkList
        WlanFreeMemory(pNetworkList);}WlanFreeMemory(pIfList);        // 释放WIFI列表WlanCloseHandle(hClient, NULL);    // 关闭WIFI模块CoUninitialize();                // 反初始化COM
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/887524.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPIO 接口工作原理

GPIO : GENERAL PURPOSE INPUT OUTPUT 通用输入输出端口是STM32的一些引脚,输出到---> led、蜂鸣器, 输入来自<--- 按键、ADC采样 通过总线读写寄存器,实现 IO口的控制。 寄存器(4种): 配置、数据、置位/复位、复用 GPIO工作原理: (1)输入 4种工作模式:上…

比知识蒸馏好用,田渊栋等提出连续概念混合,再度革新Transformer预训练框架

前言 本文,来自 Meta 等机构的研究者提出了一种新颖且高效的预训练框架:连续概念混合(Continuous Concept Mixing, CoCoMix),其将离散的下一个 token 预测与连续概念相结合。 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信…

使用 vxe-table 修改css默认样式,修改边框背景色,单元格默认高度详细说明

使用 vxe-table 修改css默认样式,修改边框背景色,单元格默认高度详细说明 由于项目的需求,可能需要对默认的表格样式就行修改覆盖,但是又不想影响到原有的功能,这时候就可以通过自带的 css 变量来修改样式,非常简单就能修改。 通过 css 变量可以非常灵活的实现局部修改,…

新能源电池生产借助ProfiNet转EtherNet/IP实战全解

一、案例背景在竞争激烈的新能源汽车行业中,电池作为核心部件,其生产质量直接决定了整车性能。在某新能源汽车电池生产线上,一套精密的生产流程正在有序运转。然而,一个不容忽视的问题出现了:生产线中采用EtherNet/IP协议的电池检测设备,与采用ProfiNet协议的生产线控制…

Oracle卸载安装问题

甲骨文数据库19c安装程序[INS-35075]已存在具有指定标识符的数据库实例。 解决: 第二步:运行regedit,选择HKEY_LOCAL_MACHINE > SOFTWARE > ORACLE,按del键删除这个入口第三步:运行regedit,选择HKEY_LOCAL_MACHINE SYSTEM > CurrentControlSet > Services,滚…

Affinity Publisher 2.6.0 (macOS, Windows) - 页面布局和设计的强大平台

Affinity Publisher 2.6.0 (macOS, Windows) - 页面布局和设计的强大平台Affinity Publisher 2.6.0 (macOS, Windows) - 页面布局和设计的强大平台 Page layout & design powerhouse 请访问原文链接:https://sysin.org/blog/affinity-publisher/ 查看最新版。原创作品,转…

Affinity Photo 2.6.0 (macOS, Windows) - 梦寐以求的照片编辑器

Affinity Photo 2.6.0 (macOS, Windows) - 梦寐以求的照片编辑器Affinity Photo 2.6.0 (macOS, Windows) - 梦寐以求的照片编辑器 The photo editing software youve been dreaming of 请访问原文链接:https://sysin.org/blog/affinity-photo/ 查看最新版。原创作品,转载请保…

Affinity Designer 2.6.0 (macOS, Windows) - 制作最精美的插图和设计

Affinity Designer 2.6.0 (macOS, Windows) - 制作最精美的插图和设计Affinity Designer 2.6.0 (macOS, Windows) - 制作最精美的插图和设计 Illustration & graphic design software at its best 请访问原文链接:https://sysin.org/blog/affinity-designer/ 查看最新版。…

大模型硬件模型选型指南

大模型一体机行业内幕 DeepSeek大模型一体机特点:私有化部署、交付容易、价格低廉,适合内网IT改造和CIO们的创新选择,也是目前被疯抢的原因。 大模型一体机从功能上要分ABC三类:A类:主要是硬件就是机头+AI卡,组成的纯纯的AI硬件服务器。B类:在A类的技术上加上Deepseek模…

DeepSeek本地性能调优

对于本地模型的加载来说,除了使用KTransformer等工具进行指令集层面的优化之外,还可以调整模型加载层数,做一个简单的优化。这里提供了一个num_gpu和num_ctx参数调整的策略,实测Tokens性能最大可优化10倍左右。技术背景 大模型性能调优是一个很复杂的工程,涉及到很多细节,…

开箱即用!一条命令部署雷池WAF,安全从此“躺平”

作者:HACK之道Web应用已成为企业的核心入口,但随之而来的SQL注入、XSS攻击、爬虫窃密等问题层出不穷。传统WAF依赖规则库的被动防御模式,面对自动化工具和0day漏洞时显得捉襟见肘。长亭雷池WAF(SafeLine)凭借“动态防护”和“智能语义分析”两大核心技术,重新定义了Web应…

Beszel搭建和使用

官网 https://beszel.dev/zh/ 简介 Beszel 是一个轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能。 它拥有友好的 Web 界面、简单的配置,并且开箱即用。它支持自动备份、多用户、OAuth 身份验证和 API 访问。环境查看 系统环境# cat /etc/redhat-release …