这是一份来自网络的代码,经过了我的修改和验证。
首先我的运行环境是Python3.7,需要安装PyUserInput库。
直接上代码吧:
#!/usr/bin/python import os import time import win32gui import win32api import win32con import pymouse,pykeyboard from pymouse import * from pykeyboard import PyKeyboard from ctypes import * def QQ(qq,pwd): #运行QQ os.system('"C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"') time.sleep(5) #获取QQ的窗口句柄 #参数1是类名,参数2是QQ软件的标题 a = win32gui.FindWindow(None,"QQ") #获取QQ登录窗口的位置 loginid = win32gui.GetWindowPlacement(a) print (loginid) print (loginid[4][0]) print (loginid[4][1]) #定义一个键盘对象 k = PyKeyboard() #把鼠标放置到登陆框的输入处 windll.user32.SetCursorPos(loginid[4][0]+192,loginid[4][1]+112) #按下鼠标再释放 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) ###input username print (qq) #输入用户名 k.type_string(qq) time.sleep(0.2) ##tab #按下tab,切换到输入密码的地方 win32api.keybd_event(9,0,0,0) win32api.keybd_event(9,0,win32con.KEYEVENTF_KEYUP,0) #按下tab用下面两行也行 #k.press_key(k.tab_key) #k.release_key(k.tab_key) #按下tab用下面一行也行 #k.tap_key(k.tab_key) #输入密码 k.type_string(pwd) #按下回车 win32api.keybd_event(13,0,0,0) win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0) if __name__ == "__main__": fn = "qq.txt" F = open(fn,"r").readlines() for i in F: tx = i.split('----') print (tx[0])#打印用户名 print (tx[1])#打印密码 QQ(tx[0],tx[1])
上面就是自动登录QQ的代码了,但是批量登录的时候还是有问题,因为登录了一个之后,再次打开登录窗口,会记录下上次登录的用户名,导致再次登录新号时失败!
不知到你有没有可行的解决方案,能批量登录QQ?期待…