python自动化UI工具发送QQ消息的实例


Posted in Python onAugust 27, 2019

概述

个人遇到过小的需求,windows自动水群发送垃圾消息,使用一些特别简单易上手的小工具,快速实现功能需求(而不是使用一些重量级的还需要额外花时间去熟悉功能语法的大工具,如UI自动化工具sikulix)。在一番摸索下,得出一番结论:

对于多平台的UI自动复杂操作,还是去学sikulix吧,这不是啃一点win32 api获取窗口句柄就能轻松解决的,毕竟sikulix是MIT大佬折腾出来的。而且,原理也更复杂(通过使用opencv对窗体控件进行识别,进而实现控制操作)。

对于简单的操作(控制剪切板缓存、自动化keyboard操作、desktop光标移动、鼠标点击动作等)可以使用python的一些包进行简单的模拟实现:pyautogui / pywin32 等。

pyautogui是美国一个知名python程序员也是优秀的python作者Al Sweigart维护的一个模块,个人是比较推崇的,因为相对来说,整个模块都是python写的,可读性比较好,对一般功能的封装得很好。pywin32就有点不一样了,这个完全是用python对win32 api接口进行python api的转换,用起来比较复杂,对windows api及c sharp有一定了解,加上文档全但是基本就是原样包windows api的文档抄了一下,所以看起来是相当痛苦的。(但是实际上pywin32跟pyautogui的思路都是使用windows api获取窗体程序句柄进而实现自动化操控,从实现原理上看来,也注定这种方式是不可能完成过于复杂的UI自动化作业的。)

目标

使用pyautogui,实现自动化发送qq消息。

实现

安装三方python包,pyautogui

pip install pyautogui

引入包,进行自动化脚本编写 —— 相当简单易读,参考api文档

①打开对应的群聊天窗口,才能获取到句柄列表,设置发送使用ctrl+enter键(方便自动化控制)

python自动化UI工具发送QQ消息的实例

②编写代码

import pyautogui as gui
import time

print(gui.getWindows()) # getWindows获取所有活动窗体程序句柄对象的字典,key为窗体程序title,value为hwnd对象
gui.Window(gui.getWindows().get('Python数据分析交流群')).set_foreground() 
# Window使用hwnd对象创建window对象,对窗体程序进行控制
# 这一部分在提供的官方api文档里并没有提到,这是作者故意没有提及的窗体程序句柄处理,才对win api封装了几个功能
for i in range(10):
 gui.typewrite(time.asctime()+' : '+str(i)) # typewrite可以参考文档,实际是模拟键盘输入,所以当这里的内容换成中文时,是无效的
 gui.hotkey('ctrl','enter') # hotkey模拟组合键
 time.sleep(10)
 
 >>>> print内容
 {'': <ctypes.wintypes.LP_c_long object at 0x0000027E50544D48>, 'SelfProject [C:\\Users\\Stan Pao\\PycharmProjects\\SelfProject] -
 ...\\test2.py [SelfProject] - PyCharm': <ctypes.wintypes.LP_c_long object at 0x0000027E50544F48>, 'Python数据分析交流群': 
 <ctypes.wintypes.LP_c_long object at 0x0000027E505AB048>, '南京捷安特精英俱乐部': <ctypes.wintypes.LP_c_long object at 
 0x0000027E505AB0C8>, 'pyautogui - OneNote': <ctypes.wintypes.LP_c_long object at 0x0000027E505AB148>, '写文章-CSDN博客 -
 Google Chrome': <ctypes.wintypes.LP_c_long object at 0x0000027E505AB1C8>, 'Program Manager': <ctypes.wintypes.LP_c_long object at 
 0x0000027E505AB248>}

效果如下:还是很简单好用的~

python自动化UI工具发送QQ消息的实例

以上这篇python自动化UI工具发送QQ消息的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单的通用表达式求10乘阶示例
Mar 03 Python
详解Python中的条件判断语句
May 14 Python
12步入门Python中的decorator装饰器使用方法
Jun 20 Python
Python中不同进制的语法及转换方法分析
Jul 27 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 Python
对Python中gensim库word2vec的使用详解
May 08 Python
Python实现查询某个目录下修改时间最新的文件示例
Aug 29 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 Python
深入浅析Python 命令行模块 Click
Mar 11 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 #Python
对Python获取屏幕截图的4种方法详解
Aug 27 #Python
python对常见数据类型的遍历解析
Aug 27 #Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 #Python
python实现一个函数版的名片管理系统过程解析
Aug 27 #Python
python中下标和切片的使用方法解析
Aug 27 #Python
python使用if语句实现一个猜拳游戏详解
Aug 27 #Python
You might like
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
python实现抖音点赞功能
2019/04/07 Python
python各类经纬度转换的实例代码
2019/08/08 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
Python对excel的基本操作方法
2021/02/18 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
Linux面试题LINUX系统类
2014/11/19 面试题
JAVA软件工程师测试题
2014/07/25 面试题
交通专业个人自荐信格式
2013/09/23 职场文书
自荐书模板
2013/12/15 职场文书
英语求职信范文
2014/05/23 职场文书
运动会稿件100字
2014/09/24 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
世界地球日活动总结
2015/02/09 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书