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

自动化登录QQ脚本的更多相关文章

  1. selenium自动化登录qq网页

    一个简单的登录网页上qq的脚本,通过此脚本了解到有些位置是无法通过xpath来定位的反倒是By定位更方便 #encoding=utf-8 from selenium import webdriver ...

  2. Python+ Selenium自动化登录腾讯QQ邮箱实例

    学习了Python语言一段时间后,在公司的项目里也使用到了python来写测试脚本,一些重复的操作都使用脚本来处理了.大大的提高工作效率,减少了一些手工重复的操作. 以下是使用unittest框架写的 ...

  3. Badboy运行脚本 - 登录QQ邮箱,编写及发送邮件

    参考: http://leafwf.blog.51cto.com/872759/1112128 http://www.51testing.com/html/00/130600-1367743.html ...

  4. 速成KeePass全局自动填表登录QQ与迅雷(包括中文输入法状态时用中文用户名一键登录)

    原文:http://bbs.kafan.cn/thread-1637531-1-1.html 使用目的:1 网页和本地客户端登录一站式解决2 通过KeePss修改密码和登录更方便,可以复制粘贴,省了输 ...

  5. Python测试开发-浅谈如何自动化生成测试脚本

    Python测试开发-浅谈如何自动化生成测试脚本 原创: fin  测试开发社区  前天 阅读文本大概需要 6.66 分钟. 一 .接口列表展示,并选择 在右边,点击选择要关联的接口,区分是否要登录, ...

  6. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

  7. Splinter学习--初探3,两种方式登录QQ邮箱

    目前,qq邮箱的登录方式有: 1.利用账号.密码登录 2.快捷登录,前提是你本地已有qq账号登录中 和前面一样,还是先到qq邮箱登录首页,审查页面元素,找到我们进行登录操作所相关的链接.按钮或是输入框 ...

  8. 电脑不能浏览网页but能登录qq,解决方案总结

    电脑能登录qq,但是不能浏览网页,解决方法总结 [注]:仅供参考,属个人经验 今天早晨起来,电脑突然只能登录qq,不能上网了,从来没有遇到这种问题的我开始各种百度方法,各种尝试,最终成功解决了问题 首 ...

  9. 一步一步来做WebQQ机器人-(三)(登录QQ并保持在线)

    × 本篇的目的是让你的QQ真正的上线:挤下你的PCQQ,和让好友状态栏显示webqq在线 目前总进度大概50% 全系列预计会有这些步骤,当然某些步骤可能会合并: 验证码 第一次登陆 第二次登陆 保持在 ...

随机推荐

  1. elk 概念整理 集群状态 - yellow - 面试的问题 -- 官方配置文档 水平扩容以及数据保障

    1. primary shard   -- raid0 2.replicas shard -- raid1 3.index -- 图书馆的借书指引 4.MySQL vs elasticsearch # ...

  2. flask的方法视图

    from flask import Flask,views,render_template,request app = Flask(__name__) app.debug = True class L ...

  3. 利用docker搭建本地私有镜像仓库

    主机名 角色 sht-sgmhadoopcm-01 Docker Repository sht-sgmhadoopnn-01 Docker Client 1. 在两台节点分别安装docker http ...

  4. java 统计素数个数问题

    题目:判断101-200之间有多少个素数,并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数. package Study ...

  5. [转帖]RPM的原理及rpm命令常用参数

    RPM的原理及rpm命令常用参数 2015年09月14日 15:39:43 lose_wait 阅读数 1298 https://blog.csdn.net/u012012939/article/de ...

  6. c++学习笔记之类和对象(一、类定义)

    类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言. 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量:创建对象的过程也叫类的实例化.每个对象都是类的一个 ...

  7. 01:keepalive高可用集群

    1.1 keepalived高可用软件介绍 1.keepalived--监控检查 注:keepalive软件有两种功能:监控检查.VRRP冗余协议 1. keepalive的作用是检测web服务器的状 ...

  8. idea 去除重复代码提醒

  9. 关于mysql-5.7.13-winx64服务无法启动的解决方法

    从官网上下载免安装的5.7的mysql,但是无法启动mysql服务.原因是下载下来的mysql没有data这个文件夹,故需要在cmd下先执行mysql --initialize -insecure命令 ...

  10. luogu题解 P1099 【树网的核】树的直径变式+数据结构维护

    题目链接: https://www.luogu.org/problemnew/show/P1099 https://www.lydsy.com/JudgeOnline/problem.php?id=1 ...