1 min read

python35批量自动登录QQ国际版

环境:WIN2008R2_64/PYTHON3.5/QQintl2.11.exe

#需要模块 1)automation :自动化操作Windows的GUI

作者地址:<http://www.cnblogs.com/Yinkaisheng/p/3444132.html>
下载地址:<https://github.com/yinkaisheng/Python-Automation-for-Windows>

2)pywin32 : 调用win api必备

下载地址:<https://sourceforge.net/projects/pywin32/files/pywin32/>
我下的版本:Build220/pywin32-220.win-amd64-py3.5.exe

3)SendKeys2 :模拟键盘事件的模块

作者地址:<http://blog.csdn.net/fangkailove/article/details/7614492>
这个作者的博客贴的代码带编号。我整理了一下:
<http://www.mashaji.cc/post/python/python_sendkeys2_py>

automation模块需要把以下文件复制到脚本同一目录:

AutomationClientX64.dll
AutomationClientX86.dll
automation.py

还有刚刚新建的SendKeys2.py文件,也放脚本同一目录
我2008R2提示缺少msvcr100.dll,我WIN7_64的直接复制过去就行了

下面是自动登录脚本:

#!python3
# -*- coding: utf-8 -*-
#QQ国际版自动登录脚本

from automation import *
import os
import time
import subprocess
from SendKeys2 import *


def login_qq(qq_num,qq_pwd):
    subprocess.Popen("C:\Program Files (x86)\Tencent\QQIntl\Bin\QQ.exe") #打开QQ
    time.sleep(3)

    qqWindow = WindowControl(searchDepth = 1, ClassName = 'TXGuiFoundation' ,Name ='QQ International') #查找QQ登录窗口

    if not qqWindow.Exists():
        print('找不到登陆窗口')

    user_pwd =  EditControl(searchFromControl = qqWindow, foundIndex = 2) #找到输入QQ号码的文本框
    user_pwd.Click()
    Win32API.SendKeys(qq_num) #直接输入QQ号

    time.sleep(1)

    user_qq =  EditControl(searchFromControl = qqWindow, foundIndex = 1)#找到输入QQ密码的文本框
    user_qq.Click()
    SendString(qq_pwd) #密码框有加密,只能用模拟键盘输入的方式输入

    login_button = ButtonControl(searchFromControl = qqWindow, Name = 'Sign in') #登录按钮
    login_button.Click()
    time.sleep(2)#如果QQ登录需要验证码。这里可以调久点。有时间输入验证码

    qqWindow1 = WindowControl(searchDepth = 1, ClassName = 'TXGuiFoundation' ,Name ='QQ International') #登录后的新窗口

    if not qqWindow1.Exists():
        print('找不到窗口,无法最小化')

    mini = ButtonControl(searchFromControl = qqWindow1,searchDepth = 2, foundIndex = 2) #最小化窗口
    mini.Click()
    time.sleep(1)

if __name__	== '__main__':
    #打开账号密码文件
    F = open("users.txt","r").readlines()
    #分隔账号密码,传两个参数,账号密码 
    for i in F:
        if ':' in i:
            tx = i.split(":")
            login_qq(tx[0],tx[1])

users.txt是QQ帐号文件,和脚本同一目录。用:分割QQ号和密码

12345667:password
23456789:password