批處理文件——多個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~1\Tencent\QQ\Bin\qq.exe
ping 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\2\History.db" "C:\Users\David\Documents\Tencent Files\All Users\QQ\History.db"

start D:\Progra~1\Tencent\QQ\Bin\qq.exe
ping 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.exe
ping 127.0.0.1 -n 7
 
del /q History.db
cls
View Code

 

根據你的QQ所在目錄修改批處理文件中的對應目錄,有幾個QQ同時登錄就有幾段代碼,修改對應的文件夾即可,比如我實驗的是3個,所以就有三段代碼,“ping 127.0.0.1 -n 7”代碼后面的7表示幾秒,可能需要做調整,避免瞬間同時登錄導致History.db文件沒來得及復制發生錯誤;

5)        這里已經是完成了原先的目的,但是有一點不足之處就是運行的時候會彈出CMD的黑色窗口;我在這里做個小小的改進,讓窗口在后台進行,原有的QQlogin.bat批處理文件不需要做任何修改,僅需要創建一個go.vbs的文件(QQlogin.batgo.vbs在同一個目錄下),文件代碼為:

 

Set shell = Wscript.createobject("wscript.shell")

a = shell.run ("C:\Users\David\Desktop\QQlogin.bat",0) 
View Code

 

雙擊運行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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM