环境: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