自動化登錄QQ腳本


1、准備第三方包:

      py -3.6 -m pip install win32gui

      py -3.6 -m pip install Pywin32

      py -3.6 -m pip install pyHook-1.5.1-cp36-cp36m-win_amd64.whl (這個文件是在https://www.lfd.uci.edu/~gohlke/pythonlibs/#genshi 下可找到)請使用這種方式安裝,就不用去安裝那些依賴環境了,比較方便

   注意安裝時,如果遇到 

 

 

 

  是因為版本有問題

      

 

 

     py -3.6 -m pip install PyUserInput

     按照以上的順序進行安裝

 

2、代碼

# encodding = utf-8
import os
import time
import win32gui
import win32api
import win32con
from pykeyboard import PyKeyboard
from ctypes import *


def QQ(qq, pwd):
    # 運行QQ
    os.system('"C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"') # 注意這里的寫法,當路徑有空格的時候,system會默認為多個參數,所以要用雙引號,代表這個路徑僅僅代表一個參數
    time.sleep(3)
    # 獲取QQ的窗口句柄
    # 參數1是類名,參數2是QQ軟件的標題
    a = win32gui.FindWindow(None, "QQ")
    # 獲取QQ登錄窗口的位置
    loginid = win32gui.GetWindowPlacement(a)
    # 定義一個鍵盤對象
    k = PyKeyboard()
    # 把鼠標放置到登陸框的輸入處
    print(loginid[4][0])  # 這是窗口的橫坐標 712
    print(loginid[4][1])  # 這是窗口的縱坐標 305

    windll.user32.SetCursorPos(loginid[4][0] + 238, loginid[4][1] + 247)  # 讓鼠標能找到登錄的輸入框,這是相當坐標,
    # windll.user32.SetCursorPos(950, 552) # 這個方法是寫死的,這是實際的坐標:950 = 712+238(橫) 552 = 305+247(縱)

    # 按下鼠標再釋放
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)  # press mouse
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)  # release mouse
    time.sleep(2)
    # 輸入用戶名
    k.type_string(qq)
    time.sleep(0.2)
    # 按下tab,切換到輸入密碼的地方
    win32api.keybd_event(9, 0, 0, 0)
    win32api.keybd_event(9, 0, win32con.KEYEVENTF_KEYUP, 0)
    # 輸入密碼
    k.type_string(pwd)

    # 按下回車
    win32api.keybd_event(13, 0, 0, 0)
    win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)


if __name__ == "__main__":
    QQ('xxxxxx', 'xxxxxxx')

 

3、獲取當前鼠標的坐標

 首先需要安裝:py -3.6 -m pip install Pyautogui

 然后寫一個腳本,代碼如下

import os,time
import pyautogui as pag
try:
    while True:
            print("Press Ctrl-C to end")
            x,y = pag.position()  # 返回鼠標的坐標
            posStr="Position:"+str(x).rjust(4)+','+str(y).rjust(4)
            print (posStr)  # 打印坐標
            time.sleep(0.2)
            os.system('cls')  # 清楚屏幕
except KeyboardInterrupt:
    print('end....')

 最后開啟服務,就可以實時獲取當前鼠標的坐標了

 通過這個就可以找到登錄QQ的輸入框,上邊的950(橫坐標) 552(縱坐標)也就是這樣來的,通過計算既可以獲得相對坐標 238,247

 


免責聲明!

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



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