基于Rufaydium库实现 一键连接wifi并登录

之前我通过ahk图像搜索功能实现了wifi点击连接,今天发现已经有大佬写了自动重连的脚本,大家可以移步学习一下。https://www.autoahk.com/archives/43980

我这里借鉴了大佬的思路和代码,首先连接我的wifi,然后再使用Rufaydium库驱动chrome打开新的实例,并判断是否已经登录成功,如果登录成功就提示。如果没有登录,那就填写账号和密码。我把我用到的实例分享出来,大家使用的时候需要根据自己的情况进行修改。

; ============自动上网第二代===========
^!i::     ;ctrl+alt +i
;调用函数
    is_con := wifi_is_connect("netsh wlan show interface | findstr ""`\<SSID""")
    ;MsgBox, "wifi name is" %is_con%   ;展示一下wifi名称
  ;通过字符串中是否有来判断
  if !InStr(is_con,"U_WiFi")  ;可修改成完整的wifi名称
  {
    ;联网
    Run, %ComSpec% /C netsh wlan connect name=U_WiFi  ;wifi名称 
    sleep 1000   ;等待一秒钟
    ;-----浏览器操作-----
    Chrome := new Rufaydium("chromedriver.exe")
    Page1 := Chrome.NewSession()  ;打开新的标签页
    Page1.Navigate("http://login.c")   ;给网页网址
    Page1.CDP.WaitFOrLoad()
    Element := Page1.getElementsbyClassName("edit_lobo_cell")
;这个判断条件大家根据自己的实际情况写,我的情况是,登录以后edit_lobo_cell元素就有2个,没有登录就是4个
    ; MsgBox, % Element.Count()   ;这样就能获得输入的个数了,可以判断是否登录了
    p=% Element.Count()
    If (p=2)
        {
        MsgBox,已经登录
        }
    Else 
        {
        Element[2].SendKey("201`n")   ;自己的账号和密码,最后的`n标识回车
        Element[3].SendKey("24`n")
;这里如果有必要的话可以再调用click()函数点击登录按钮
        }
    Sleep, 500
    Chrome.QuitAllSessions() ; closing all session one by one
    Chrome.driver.exit() ; exitting driver

  }
return

;检测是否连着wifi
wifi_is_connect(command)   ;这里输入的是命令,具体啥意思不用管,哈哈"netsh wlan show interface | findstr ""`\<SSID"""
{
    cmdInfo:=""
    try
  {
    Clip_Saved := ClipboardAll  ;保存剪切板
    Clipboard := ""      ;清空剪切板
    ;这里是把命令组合起来运行,暂时不管那么多
    Run,% ComSpec " /C " command " | CLIP", , Hide   ;这个是干啥的呢?这个应该和wifi是否连接有关系了
    ClipWait,2          ;等待什么呢
    cmdInfo := Clipboard    
    Clipboard := Clip_Saved    ;恢复剪切板
  }
  return cmdInfo
}
;https://www.cnblogs.com/xiongzaiqiren/p/16016785.html主要利用的是cmd命令控制网络重连

给TA捐赠
共{{data.count}}人
人已捐赠
其他

ahk增强vim的思路

2022-10-2 20:55:44

其他

【金山文档】电子文件分类保存规范-2022年10月5日

2022-10-5 17:17:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索