本帖最后由 次谐波 于 2023-12-29 10:28 编辑
一、效果图
如果这也是你刚好需要的,请继续看下文。
二、起因
每次电脑开机需要登录2个微信,登第二个都需要扫码,糟心。
论坛里也有好几个解决方案,但用起来较麻烦,并不是我需要的。
免登的原理也不复杂,也没有啥高端操作,所以干脆自己整一个。
三、前期准备
四、原理
- 微信扫码登入凭证缓存在 ...\WeChat Files\All Users\config 文件夹内;
- 里面有2个文件,ini和data文件,需要切换账号直接替换这两个文件就行了;
五、脚本代码
新建一个bat 文件将脚本复制进去就ok了,例如 wechat.bat 。
@echo off
chcp 65001 > nul
rem 干掉所有wechat进程,不需要可以注释
rem taskkill /f -im wechat.exe > nul
rem 开启延时变量
setlocal EnableDelayedExpansion
rem 判断BAT文件是否在WeChat Files\All Users下
if "%cd:~-9,-1%" neq "All User" (
rem 弹窗提示
msg * "请将脚本放在WeChat Files\All Users目录内
rem 终止脚本
exit
)
rem 获取的微信安装目录不正确,请手动指定下方第21行 WeChatPath 变量,并删除rem注释
rem set WeChatPath=D:\Program Files\Tencent\WeChat
rem 判断是否手动设置WeChatPath
if "%WeChatPath%" equ "" (
rem 从注册表获取微信安装目录,如果获取的安装目录不正确,请手动指定下方第21行 WeChatPath 变量,并删除rem注释
for /f "skip=1 delims=: tokens=1,*" %%i in ('REG QUERY "HKEY_CURRENT_USER\Software\Tencent\WeChat" /v "InstallPath"') do (
set str=%%i
set var=%%j
set "var=!var:"=!"
if not "!var:~-1!"=="=" set WeChatPath=!str:~-1!:!var!
)
)
rem 安装目录WeChat.exe是否可访问
if not exist "%WeChatPath%\WeChat.exe" (
rem 弹窗提示
msg * "获取的安装目录不正确,请手动指定 第21行 WeChatPath 变量"
rem 终止脚本
exit
)
rem 模拟按键回车,不需要直接删除
echo Set objShell = WScript.CreateObject("WScript.Shell") > login.vbs
rem 延迟500ms,程序启动慢的话稍微延长点
echo WScript.Sleep 500 >> login.vbs
rem 模拟回车
echo objShell.SendKeys "{ENTER}" >> login.vbs
rem 模拟按键回车,不需要直接删除
rem 遍历All Users下的文件夹
for /d %%i in ( * ) do (
rem 获取目录名
set ml2=%%i
rem 过滤config文件夹
if !ml2! neq config (
rem 拷贝凭证文件
xcopy "%cd%\!ml2!\" "%cd%\config\" /s /e /y > nul
rem 这里可以延迟1秒,按实际运行情况调整
rem choice /t 1 /d y /n > nul
rem 打开微信
start "" "%WeChatPath%\WeChat.exe"
rem 模拟按键回车,不需要直接删除
cscript login.vbs > nul
rem 模拟按键回车,不需要直接删除
rem 这里可以延迟1秒,按实际运行情况调整
rem choice /t 1 /d y /n > nul
)
)
rem 模拟按键回车,不需要直接删除
del login.vbs
rem 模拟按键回车,不需要直接删除
六、食用方法
1 将脚本 wechat.bat 放到微信聊天记录文件夹目录下的 All Users 文件夹内,与 config 平级;
- 例,我的是:D:\Program Files\Tencent\WeChat Files\All Users
- 聊天记录文件夹在微信设置内可以看到
2 保存每个账号的登录凭证;
- 删除 All Users 目录下 config 文件夹,里面可能有几十个文件,直接删掉,方便后续拿到我们需要
- 手动登录一个账号
- 将 config 文件夹重命名,名字任意,一个 登入 凭证 就ok了
- 需要登录几个账号,分别保存就行了
- 如果登录凭证失效了,删除对应的文件夹,重新保存即可
3 手机端的自动确认,嗯,有模块,自行解决;
4 愉快双击运行脚本,2个微信10S就登入完成了,摸鱼时间+60S;
七、关于运行bat的显示黑窗
- 貌似 start 运行exe 存在层级覆盖问题,在win11上面直接运行bat文件没有问题,其他版本不清楚,没测试
- 但是,通过cmd或者vbs运行脚本,第二个打开的微信会在第一个打开的微信下面,模拟 enter 按键操作就不能实现了,
- 可以删除相应模拟 enter 按键部分的代码,手动点击,或者用其他语言重写。
|