一.前言
上一篇中Qt笔记(六十四)之Qt获取连接过的WiFi密码
楼主介绍怎么怎么获取密码,但是要手动输入,于是新的需求就产生了,能不能不能获取当前的连接的WiFi的名称,然后再获取他的密码,这样的使用场景比较多
二.实现过程
1.基本思路:基于命令netsh wlan show interfaces去获取对应的配置文件数据,然后去解析命令执行结果,获取其中的名称,Qt方面主要是用QProcess
2.核心代码
QString cmdStr = "netsh wlan show interfaces";
QProcess p;
p.start(cmdStr);
p.waitForStarted();
p.waitForFinished();
QString resStr = QString::fromLocal8Bit(p.readAllStandardOutput());
qDebug() << getCurrentConnectedWiFi(resStr);
经过楼主的研究,通过以下的整理,能分拆出无线名称
QStringList resList = resStr.split("\r\n\r\n");
QString objRes = resList[1];
QStringList objResList = objRes.split("\r\n");
QString stateInfo = objResList[4];
stateInfo.remove(" "); // 去除空格,不然会出现比较错误的情况
QStringList stateInfoList = stateInfo.split(":");
if (stateInfoList[1] == QStringLiteral("已连接"))
{
QString wifiNameStr = objResList[5];
wifiNameStr.remove(" "); // 去除空格才是真正的wifi名称
return wifiNameStr.split(":")[1];
}
else
{
qDebug() << QStringLiteral("当前网络可能未连接");
return "";
}
三.其他
1.再结合上一篇文章,就可以实现软甲启动获取当前WiFi的名称了,对于行政文员来说确确实方便了