程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 用VBScript制作QQ自動登錄的腳本代碼

用VBScript制作QQ自動登錄的腳本代碼

編輯:更多關於編程
    有時候我們在個人電腦上,每次輸入密碼比較麻煩,可以自動登錄,但如果qq賬號多了,就可以使用這個腳本了  

    一直用的是狂人版的QQ,也用它附贈的自動登錄器很久了,不過最近一版的狂人QQ不知為何取消了自動登錄組件。好在QQ2009已經能夠同時記住多個號碼的密碼,雖然要多點擊幾下,但依然能夠實現免輸入密碼登錄。

      誰知最近不知道電腦發了什麼瘋,每隔一段時間,QQ記住的密碼就會被清空。我的兩個QQ號密碼都設置得比較復雜,每次登錄要輸入兩遍密碼實在是件痛苦的事情,於是決定自制一個登錄器。

      在網上找了許久,發現了一個用VBS制作QQ登錄腳本的辦法:

    復制代碼 代碼如下:
    set WshShell = WScript.CreateObject("WScript.Shell")   '創建一個Shell對象
    WshShell.Run "C:Progra~1TencentQQQQ.exe"      '運行QQ,這裡改成你自己的QQ目錄
    WScript.Sleep 3000                      '休眠 3000毫秒(停止3秒)
    WshShell.SendKeys "{tab}"
    WScript.Sleep 100
    WshShell.SendKeys "xxxxxxxxx"      '這裡的xxxx用你的QQ號碼代替
    Wscript.Sleep 100
    WshShell.SendKeys "{tab}"
    Wscript.Sleep 100
    WshShell.SendKeys "********"      '這裡的****用你的QQ密碼代替
    Wscript.Sleep 1000
    WshShell.Sendkeys "{enter}"

      需要注意的是,文件夾的名如果大於8個字符或者中間有空格,要寫成“PROGRA~1”這種形式,就是保留名字的前6個字母然後加上“~1”, 這個“~1”代表前6個字母相同文件夾名字的第一個文件夾,例如有2個文件夾中間都有空格:Program Files和Program Filez,那就先以名稱排列圖標,看最前面的就是~1,第2個就是~2

      可是把代碼復制過來後,卻始終說密碼錯誤。研究半天,終於明白,原來是因為我的密碼中有一些特殊字符,而這些特殊字符在VBS中另有其它含義。 然而,要想使用這些特殊字符的本來意義,網上卻找不到解決的辦法——很多網站都說用“”引導就可以了,例如密碼中如果有“$”字符,就要用“$”代 替。可是我試用之後證明在DOS環境中這樣不行!

      最後經過反復試驗,終於把這個問題解決了。而且,我還添加了一個判斷過程。也就是如果把這個腳本放在開始-->所有程序-->啟動裡面,打算在開機的時候自動運行的話,那就可以通過點擊確定或者取消來啟動或者跳過QQ自動登錄。代碼如下:

    復制代碼 代碼如下:
    set WshShell = WScript.CreateObject("WScript.Shell")
    Dim a
    a = MsgBox("自動登錄QQ嗎?",65,"QQ自動登錄")
    If a=1 Then
    WshShell.Run "D:Progra~1TencentQQ2009BinQQ.exe"
    WScript.Sleep 11000
    WshShell.SendKeys "+{tab}"
    WScript.Sleep 300
    WshShell.SendKeys "xxxxxxx{tab}"
    Wscript.Sleep 300
    WshShell.SendKeys "****************{tab}"
    Wscript.Sleep 300
    WshShell.SendKeys "{down 7}{enter}"
    Wscript.Sleep 300
    WshShell.SendKeys "{tab 4}{enter}"

    Wscript.Sleep 15000

    WshShell.Run "D:Progra~1TencentQQ2009BinQQ.exe"
    WScript.Sleep 2000
    WshShell.SendKeys "+{tab}"
    WScript.Sleep 300
    WshShell.SendKeys "xxxxxxxxx{tab}"
    Wscript.Sleep 300
    WshShell.SendKeys "****************{tab}"
    Wscript.Sleep 300
    WshShell.SendKeys "{down 7}{enter}"
    Wscript.Sleep 300
    WshShell.SendKeys "{tab 4}{enter}"
    End If

    注釋:
    如果你不希望出現提示對話框,只要把第2、3、4行和最後一行刪除掉即可。

      第5行,我的QQ啟動目錄在D:Program FilesTencent中。

      第6行,由於剛開機時可能同時要加載許多程序,QQ的啟動過程可能比較慢,需要等待11秒鐘確保登錄界面出現。而且我發現,狂人版的QQ在啟動過程中很容易受到干擾而失去當前登錄窗口,所以這裡的等待時間應盡可能足夠長以確保自動登錄時沒有其它程序搶走當前窗口。

      第7行,狂人版QQ啟動後,除非是第一次運行QQ,否則光標位置並不在輸入號碼的地方,而是輸入密碼的地方,所以需要發送Shift+Tab組合鍵使得光標出現在輸入號碼的框中。
    對於需要與Shift、Ctrl、Alt三個控制鍵組合的按鍵,SendKeys使用特殊字符來表示:+、^、%,另外對於一些不會生成字符的控制功能按鍵,則需要使用大括號括起來按鍵的名稱。下面是這些按鍵和表示法的對照:
    按鍵                代碼   
    BACKSPACE     {BACKSPACE}, {BS}, 或 {BKSP}   
    BREAK       {BREAK}   
    CAPS LOCK     {CAPSLOCK}   
    DEL or Delete   {Delete} 或 {DEL}   
    DOWN ARROW     {DOWN}   
    END        {END}   
    ENTER       {ENTER}或 ~   
    ESC        {ESC}   
    HELP        {HELP}   
    HOME        {HOME}   
    INS or Insert   {Insert} 或 {INS}   
    LEFT ARROW     {LEFT}   
    NUM LOCK      {NUMLOCK}   
    PAGE DOWN     {PGDN}   
    PAGE UP      {PGUP}   
    PRINT SCREEN    {PRTSC}   
    RIGHT ARROW    {RIGHT}   
    SCROLL LOCK    {SCROLLLOCK}   
    TAB        {TAB}   
    UP ARROW      {UP}   
    F1         {F1}   
    ……
    F10         {F10}

      第8行,光標發生位置變動,所以延時0.3秒,確保光標成功轉移。以下同。

      第9行,輸入完號碼後還需要按一下Tab鍵使得光標跳轉到密碼輸入框中。這裡我考慮到數字鍵和Tab鍵的點擊都是在同一個框內,所以直接放在了一起,節約時間。

      第11行,輸入密碼。注意,如果你的密碼中有“$”、“(”、“)”、“*”、“+”、“_”、“[”、“?”、“”、“^”、“{”或者 “|”符號,就必須用{ }框起來,例如有“[”,就得寫成“{[}”;如果有“{”,就得寫成“{{}”;如果密碼是“a*2+3”,就得寫成“a{*}2{+}3”。其余類 推。
    注意最後的{Tab},如果你只有一個QQ號,而且每次都是正常方式登錄,那麼你可以將{Tab}改成{Enter},然後刪除後面的行就行了。

      第13行,由於我每次都希望能以隱身方式登錄,所以在這裡添加了按向下鍵選取隱身模式的過程,選中隱身模式後需要發送回車鍵才能選中。如果需要 發送多個重復的單字母按鍵,不必重復輸入該字母,SendKeys允許使用簡化格式進行描述,使用格式為“{按鍵 數字}”。例如要發送10個字母“x”,則輸入“WshShell.SendKeys "{x 10}"”即可,所以這裡我用了7個向下鍵。

      第15行,這裡的4個Tab是用於將鼠標點擊焦點移動到登錄窗口中的“登錄”按鈕上,最後發送回車開始登錄過程。

      第17行,我需要登錄兩個QQ號,所以在這裡需要等待至少15秒,確保第一個號碼完全登錄。如果你的第一個QQ號還沒有登錄完畢就出現了第二個登錄窗口,那第二個QQ登錄一定會失敗,需要增大這裡的數值。

      後面的過程就和前面的一樣了,不再贅述。編輯好這段代碼之後,新建一個文本文件,將代碼復制進去,然後將文件改名為AutoQQ.VBS,雙擊就可以看到效果了。

    補充說明:

    1)雙擊運行vbs文件後,不能點擊鼠標,也不能敲擊鍵盤,必須等到QQ號啟動結束才能做其它事情,否則登錄過程很可能會失敗。

    2)運行此腳本時不能有其它搶占最頂端窗口的程序,例如QQ記牌器之類,否則WScript會把字符發送到錯誤的窗口中;也不要設置收到QQ消息就自動彈出窗口,否則後續QQ號登錄很可能會被干擾。

    3)這種方法自動登錄QQ,密碼是明文形式存放在vbs文件中的,所以只適用於私人電腦,如果多人使用同一電腦就不安全了。也許你可以去網上找一個叫做“VBS2EXE”的軟件來把腳本文件轉換成exe文件,但是我試驗了多次,這個軟件沒法在我的機器上運行。

    (本人原創作品,轉載請注明出自玄鳥翩翩)

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved