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