偶然看到有的同學(xué)登錄PC的QQ,發(fā)現(xiàn)他有很多QQ,每登錄一個(gè)要切換一個(gè),雖然記住了密碼,但還是不方便,于是想通過(guò)批處理來(lái)實(shí)現(xiàn)“一鍵登錄”的功能。以下內(nèi)容為本文假想,如有雷同,實(shí)屬巧合!
具體的實(shí)現(xiàn)步驟如下:
(1)首先,查看QQ安裝時(shí)的文檔位置(用于保存用戶(hù)登錄歷史記錄),我的是:C:\Users\David\Documents\Tencent Files\All Users\QQ;如圖1所示:
圖1 數(shù)據(jù)信息所在目錄
(2)目錄下有三個(gè)后綴名為db的文件:
History.db是一個(gè)存放所有歷史登錄記錄的表,該表是有序的,第一個(gè)記錄就是客戶(hù)端最近一次登錄的QQ用戶(hù);
Perfre.db則是實(shí)際登錄的QQ用戶(hù),每次打開(kāi)客戶(hù)端,都會(huì)從History.db中取出第一個(gè)記錄(即第一個(gè)QQ用戶(hù))存入Perfre.db并登錄,里面保存的是一個(gè)用戶(hù)的信息;
Registry.db保存的應(yīng)該就是Perfre.db中保存的登錄用戶(hù)的信息,包括QQ頭像,登錄設(shè)置(代理,端口號(hào),自定義圖像和好友列表等用戶(hù)信息),如下圖所示:
圖2 登錄客戶(hù)端 圖3 設(shè)置信息窗口
(3)三者的執(zhí)行順序簡(jiǎn)介:在啟動(dòng)QQ.exe應(yīng)用程序的時(shí)候,首先就是加載History.db文件,于是在客戶(hù)端可以看到我們之前在本地PC所登錄的所有歷史記錄;其次,動(dòng)態(tài)創(chuàng)建Perfre.db文件,從History.db文件取出第一個(gè)QQ用戶(hù)記錄信息,保存在Perfre.db文件中;Registry.db文件也是動(dòng)態(tài)生成的,它根據(jù)Perfre.db文件中的用戶(hù)唯一標(biāo)識(shí)符,在Misc文件夾(圖1所示)下找到此用戶(hù)的代理,端口號(hào),自定義圖像和好友列表等用戶(hù)信息,最后登錄,后面還要檢驗(yàn)密碼什么的就不在本博文的研究范圍內(nèi)了。
(4)既然這樣,我們就可以寫(xiě)一個(gè)bat批處理腳本來(lái)實(shí)現(xiàn)多個(gè)QQ用戶(hù)同時(shí)登錄了,當(dāng)然,這也是一個(gè)一勞永逸的辦法,剛開(kāi)始比較麻煩一點(diǎn)。
1) 在"C:\Users\David\Documents\Tencent Files\All Users\QQ "文件夾(這里每個(gè)人的文件夾可能不一樣)分別創(chuàng)建文件夾1、2、3、……(要登錄幾個(gè)QQ就創(chuàng)建幾個(gè));
2) 登錄第一個(gè)QQ,輸入賬號(hào)密碼,勾選自動(dòng)登錄。登錄成功后,將History.db文件剪切到文件夾1;
3) 登錄第二個(gè)QQ,同上,將History.db文件剪切到文件夾2,依次類(lèi)推,直到所有登錄的QQ所創(chuàng)建的History.db文件都備份好;
4) 在任何地方創(chuàng)建一個(gè)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~1\Tencent\QQ\Bin\qq.exeping 127.0.0.1 -n 7del "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~1\Tencent\QQ\Bin\qq.exeping 127.0.0.1 -n 7 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~1\Tencent\QQ\Bin\qq.exeping 127.0.0.1 -n 7 del /q History.dbcls
根據(jù)你的QQ所在目錄修改批處理文件中的對(duì)應(yīng)目錄,有幾個(gè)QQ同時(shí)登錄就有幾段代碼,修改對(duì)應(yīng)的文件夾即可,比如我實(shí)驗(yàn)的是3個(gè),所以就有三段代碼,“ping 127.0.0.1 -n 7”代碼后面的7表示幾秒,可能需要做調(diào)整,避免瞬間同時(shí)登錄導(dǎo)致History.db文件沒(méi)來(lái)得及復(fù)制發(fā)生錯(cuò)誤;
5) 這里已經(jīng)是完成了原先的目的,但是有一點(diǎn)不足之處就是運(yùn)行的時(shí)候會(huì)彈出CMD的黑色窗口;我在這里做個(gè)小小的改進(jìn),讓窗口在后臺(tái)進(jìn)行,原有的QQlogin.bat批處理文件不需要做任何修改,僅需要?jiǎng)?chuàng)建一個(gè)go.vbs的文件(QQlogin.bat和go.vbs在同一個(gè)目錄下),文件代碼為:
Set shell = Wscript.createobject("wscript.shell")a = shell.run ("C:\Users\David\Desktop\QQlogin.bat",0)
雙擊運(yùn)行go.vbs文件,即可實(shí)現(xiàn)多個(gè)QQ同時(shí)登錄;要是你不想雙擊,也可以采用快捷鍵,創(chuàng)建一個(gè)go.vbs文件的快捷方式(放在桌面上或者附加到開(kāi)始菜單),則直接使用快捷鍵(我的是Ctrl+Alt+K)就可以了,例子如下圖4:
圖4 快捷鍵修改
注:
1在批處理文件中只需要操作History.db文件的原因是,另外兩個(gè)文件是基于History.db文件動(dòng)態(tài)生成的,因此不用全部操作。
2博文最后提到的快接鍵方式運(yùn)行,由于vbs是一個(gè)腳本文件,無(wú)法附加到開(kāi)始菜單,作者沒(méi)有仔細(xì)研究。
3批處理文件中每個(gè)QQ都附加一段代碼顯得代碼量繁瑣,可以使用類(lèi)似for循環(huán)或者while循環(huán)的方式,這里也留給讀者搞定。
本博客與csdn:大衛(wèi)david為同一作者,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處:http://www.cnblogs.com/bestDavid/p/QQLoginMUL.html
聯(lián)系客服