自动化登录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