前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA获取连接的wifi密码

VBA获取连接的wifi密码

作者头像
xyj
发布2021-03-03 15:53:34
1.3K0
发布2021-03-03 15:53:34
举报
文章被收录于专栏:VBA 学习VBA 学习

经常碰到这种情况:自己家里设置了wifi密码,电脑手机连接后,过段时间很容易忘记,有时候朋友过来问起来就要回忆半天!

电脑或手机既然能够自动连接已经连接过的wifi,说明密码已经被保存起来了,只是一般情况下我们不知道如何找到这个保存的文件,最近发现一个使用cmd命令获取保存的wifi密码功能,但是cmd命令毕竟不熟悉,如果每次都去使用cmd命令的话,还是得临时去查。

不过VBA能够和cmd命令交互,所以使用VBA把cmd命令封装起来,使用起来就方便多了。

又想到VBS直接双击就能运行的便捷,而且语法和VBA几乎一样,就又小改一下做成了个VBS,直接双击就可以了,效果:

这里就直接贴代码,原理其实我也没怎么去研究!

只要把下面的代码复制到一个txt文档,然后把文档的后缀修改为.vbs即可:

代码语言:javascript
复制
    Dim retWIFI, retPassword 
    Dim ret
    
    ret = GetActiveWifiPassword(retWIFI, retPassword)
    If Len(ret) Then
        MsgBox ret, vbCritical
    Else
        MsgBox "wifi账号:" & retWIFI &  "  密码:" & retPassword
    End If



Function GetActiveWifiPassword(retWIFI, retPassword)
    'cmd命令设置为UTF8编码
'    GetCmdResult "chcp 65001"
    
    Dim ret
    
    ret = GetActiveWifi(retWIFI)
    If Len(ret) Then
        GetActiveWifiPassword = ret
    Else
        ret = GetWifiPassword(retWIFI, retPassword)
        
        If Len(ret) Then
            GetActiveWifiPassword = ret
        End If
    End If
End Function

Function GetWifiPassword(sWIFI, retPassword)
    Dim ret
    
    '获取连接的wifi账号密码
    ret = GetCmdResult("chcp 65001 & netsh wlan show profile name=" & sWIFI & " key=clear | findstr Key")
    If Len(ret) = 0 Then
        GetWifiPassword = "netsh wlan show profile没有找到[Key]."
        Exit Function
    End If
    
    ret = Mid(ret, InStr(ret, "Key"))
    
    If InStr(ret, ": ") Then
        retPassword = Split(ret, ": ")(1)
    Else
        GetWifiPassword = "Key Content分割符号不是[: ]。"
    End If
End Function

'获取活动wifi帐号
Function GetActiveWifi(retWIFI)
    Dim ret
    ret = GetCmdResult("netsh wlan show interfaces | findstr SSID")
    
    Dim tmp
    tmp = Split(ret, vbNewLine)
    
    Dim i
    For i = 0 To UBound(tmp)
        ret = CStr(tmp(i))
        If InStr(ret, "SSID") Then
                If InStr(ret, ": ") Then
                    '获取连接的wifi账号
                    retWIFI = Split(ret, ": ")(1)
                Else
                    GetActiveWifi = "SSID分割符号不是[: ]。"
                End If
            Exit Function
        End If
    Next
    
    GetActiveWifi = "没有找到SSID。"
End Function

Function GetCmdResult(sCmd)
    Dim ws
    Dim ws_exec
    Dim str
    Dim ret
    
    Set ws = CreateObject("Wscript.Shell")
   
    Set ws_exec = ws.Exec("cmd.exe /c """ & sCmd & """")

    GetCmdResult = ws_exec.StdOut.ReadAll
    
    Set ws_exec = Nothing
    Set ws = Nothing
End Function
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档