批处理文件——多个QQ一键登录
偶然看到有的同学登录PC的QQ,发现他有很多QQ,每登录一个要切换一个,虽然记住了密码,但还是不方便,于是想通过批处理来实现“一键登录”的功能。以下内容为本文假想,如有雷同,实属巧合!
具体的实现步骤如下:
(1)首先,查看QQ安装时的文档位置(用于保存用户登录历史记录),我的是:C:\Users\David\Documents\Tencent Files\All Users\QQ;如图1所示:

图1 数据信息所在目录
(2)目录下有三个后缀名为db的文件:
History.db是一个存放所有历史登录记录的表,该表是有序的,第一个记录就是客户端最近一次登录的QQ用户;
Perfre.db则是实际登录的QQ用户,每次打开客户端,都会从History.db中取出第一个记录(即第一个QQ用户)存入Perfre.db并登录,里面保存的是一个用户的信息;
Registry.db保存的应该就是Perfre.db中保存的登录用户的信息,包括QQ头像,登录设置(代理,端口号,自定义图像和好友列表等用户信息),如下图所示:

图2 登录客户端 图3 设置信息窗口
(3)三者的执行顺序简介:在启动QQ.exe应用程序的时候,首先就是加载History.db文件,于是在客户端可以看到我们之前在本地PC所登录的所有历史记录;其次,动态创建Perfre.db文件,从History.db文件取出第一个QQ用户记录信息,保存在Perfre.db文件中;Registry.db文件也是动态生成的,它根据Perfre.db文件中的用户唯一标识符,在Misc文件夹(图1所示)下找到此用户的代理,端口号,自定义图像和好友列表等用户信息,最后登录,后面还要检验密码什么的就不在本博文的研究范围内了。
(4)既然这样,我们就可以写一个bat批处理脚本来实现多个QQ用户同时登录了,当然,这也是一个一劳永逸的办法,刚开始比较麻烦一点。
1) 在"C:\Users\David\Documents\Tencent Files\All Users\QQ "文件夹(这里每个人的文件夹可能不一样)分别创建文件夹1、2、3、……(要登录几个QQ就创建几个);
2) 登录第一个QQ,输入账号密码,勾选自动登录。登录成功后,将History.db文件剪切到文件夹1;
3) 登录第二个QQ,同上,将History.db文件剪切到文件夹2,依次类推,直到所有登录的QQ所创建的History.db文件都备份好;
4) 在任何地方创建一个QQlogin.bat批处理文件,该脚本代码如下:
del "C:\Users\David\Documents\Tencent Files\All Users\QQ\History.db"
copy "C:\Users\David\Documents\Tencent Files\All Users\QQ\1\History.db" "C:\Users\David\Documents\Tencent Files\All Users\QQ\History.db" start D:\Progra~\Tencent\QQ\Bin\qq.exe
ping 127.0.0.1 -n del "C:\Users\David\Documents\Tencent Files\All Users\QQ\History.db"
copy "C:\Users\David\Documents\Tencent Files\All Users\QQ\2\History.db" "C:\Users\David\Documents\Tencent Files\All Users\QQ\History.db" start D:\Progra~\Tencent\QQ\Bin\qq.exe
ping 127.0.0.1 -n del "C:\Users\David\Documents\Tencent Files\All Users\QQ\History.db"
copy "C:\Users\David\Documents\Tencent Files\All Users\QQ\3\History.db" "C:\Users\David\Documents\Tencent Files\All Users\QQ\History.db"
start D:\Progra~\Tencent\QQ\Bin\qq.exe
ping 127.0.0.1 -n del /q History.db
cls
根据你的QQ所在目录修改批处理文件中的对应目录,有几个QQ同时登录就有几段代码,修改对应的文件夹即可,比如我实验的是3个,所以就有三段代码,“ping 127.0.0.1 -n 7”代码后面的7表示几秒,可能需要做调整,避免瞬间同时登录导致History.db文件没来得及复制发生错误;
5) 这里已经是完成了原先的目的,但是有一点不足之处就是运行的时候会弹出CMD的黑色窗口;我在这里做个小小的改进,让窗口在后台进行,原有的QQlogin.bat批处理文件不需要做任何修改,仅需要创建一个go.vbs的文件(QQlogin.bat和go.vbs在同一个目录下),文件代码为:
Set shell = Wscript.createobject("wscript.shell")
a = shell.run ("C:\Users\David\Desktop\QQlogin.bat",)
双击运行go.vbs文件,即可实现多个QQ同时登录;要是你不想双击,也可以采用快捷键,创建一个go.vbs文件的快捷方式(放在桌面上或者附加到开始菜单),则直接使用快捷键(我的是Ctrl+Alt+K)就可以了,例子如下图4:

图4 快捷键修改
注:
1在批处理文件中只需要操作History.db文件的原因是,另外两个文件是基于History.db文件动态生成的,因此不用全部操作。
2博文最后提到的快接键方式运行,由于vbs是一个脚本文件,无法附加到开始菜单,作者没有仔细研究。
3批处理文件中每个QQ都附加一段代码显得代码量繁琐,可以使用类似for循环或者while循环的方式,这里也留给读者搞定。
本博客与csdn:大卫david为同一作者,欢迎转载,转载请注明出处:http://www.cnblogs.com/bestDavid/p/QQLoginMUL.html
批处理文件——多个QQ一键登录的更多相关文章
- QQ一键登录功能的实现过程
QQ登录的思路: 当qq登陆成功后,QQ会给我们返回一个唯一的用户标识:openId,当用户授权QQ时,判断 if(已经有openId){ 跳转到登陆后的页面. }else if(没有openId){ ...
- Destoon QQ互联一键登录审核不通过的解决方案
在QQ互联上申请帐号之后提交了审核, 后台填写APPID和KEY之后自己申请的QQ号可以正常登录,但QQ互联审核的时候一直审核不通过说是“您的网站审核未通过,原因是“点击QQ登录按钮提示登录失败或出现 ...
- 速成KeePass全局自动填表登录QQ与迅雷(包括中文输入法状态时用中文用户名一键登录)
原文:http://bbs.kafan.cn/thread-1637531-1-1.html 使用目的:1 网页和本地客户端登录一站式解决2 通过KeePss修改密码和登录更方便,可以复制粘贴,省了输 ...
- 项目开发-->一键登录功能汇总
开发网站经常会提供一些一键登录功能,如:QQ.新浪微博.淘宝账号.开心网账号.人人网账号等进行快捷登录,下面记录几个常用的开放平台地址,方便以后开发需要. 1.QQ互联 2.新浪微博 网站接入QQ互联 ...
- 在自己的网站上实现QQ授权登录
最近在实现QQ授权登录,现将我的实现过程以及我的理解整理如下.以下所述如有不对之处,请指正. 官方提供的SDK有:JS,PHP,Java.我的网站使用Scala+Play搭建的,所以只能用JS SDk ...
- 腾讯的网站是如何检测到你的 QQ 已经登录?
在 QQ 已经登录的情况下,手动输入网址打开 QQ 邮箱 或者 QQ 空间 等腾讯网站,可以看到网页已经检测到本地 QQ 客户端已经登录,于是用户可以很方便地一键登录网站而不必再输入用户名密码. 这实 ...
- 使用QQ互联登录应用
QQ登录集成插件简介 互联网应用越来越多,通常每一个应用都会要求用户注册登录,粗略估记一下,QQ,微博,微信,银行帐号.邮箱,招聘网站账户,淘宝帐号,支付宝帐号,公司OA帐号....粗略算一下,十几个 ...
- PHP版微信第三方实现一键登录及获取用户信息的方法
本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要“服务号”才可以哦,所以必须到官方申请. 一开始你需要进入微信 ...
- 腾讯的网站如何检测到你的 QQ 已经登录?
转:http://www.lovelucy.info/tencent-sso.html 在 QQ 已经登录的情况下,手动输入网址打开 QQ 邮箱 或者 QQ 空间 等腾讯网站,可以看到网页已经检测到本 ...
随机推荐
- gitlab备份与恢复
(1)备份 1.创建备份目录,并授权 mkdir /data/backups/gitlab -pv chown -R git.git /data 2.修改gitlab配置 vim /etc/gitla ...
- CentOS 7.4 下安装 Nginx
CentOS 7.4 下安装 Nginx 安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境. ...
- LOJ #6280. 数列分块入门 4-分块(区间加法、区间求和)
#6280. 数列分块入门 4 内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 题目描述 给出一个 ...
- Codeforces 1131 C. Birthday-暴力 (Codeforces Round #541 (Div. 2))
C. Birthday time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- win_tc使用感受
上大学的时候一直在使用win_tc就因为使用方便,今天准备用这个工具编辑一个函数,就特意下载了一个. 没想到直接出来一个bug. sizeof(char*)结果竟然是2. 果断接卸,误人子弟啊.
- HDU 5552 Bus Routes(2015合肥现场赛A,计数,分治NTT)
题意 给定n个点,任意两点之间可以不连边也可以连边.如果连边的话可以染上m种颜色. 求最后形成的图,是一个带环连通图的方案数. 首先答案是n个点的图减去n个点能形成的树. n个点能形成的树的方案数比 ...
- 洛谷P1197 [JSOI2008] 星球大战 [并查集]
题目传送门 星球大战 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系. 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这 ...
- ansible学习-playbook的YAML语法
[一篇非常好的ansible参考博文] 初识Ansible http://liumissyou.blog.51cto.com/4828343/1616462 --------------------- ...
- Web应用扫描测试工具Vega
Web应用扫描测试工具Vega Vega是Kali Linux提供的图形化的Web应用扫描和测试平台工具.该工具提供代理和扫描两种模式.在代理模式中,安全人员可以分析Web应用的会话信息.通过工具 ...
- Xamarin 中Visual Studio创建项目提示错误
Xamarin 中Visual Studio创建项目提示错误 错误信息:Object reference not set to an instance of an object 出现这种情况,是由于没 ...