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 相关文章推荐
Python入门教程之if语句的用法
May 14 Python
Python实现文件内容批量追加的方法示例
Aug 29 Python
Django实现简单分页功能的方法详解
Dec 05 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
python 读文件,然后转化为矩阵的实例
Apr 23 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
python实现批量nii文件转换为png图像
Jul 18 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
Feb 03 Python
pip install命令安装扩展库整理
Mar 02 Python
PyTorch device与cuda.device用法
Apr 03 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安全配置
2006/12/06 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
DHTML Slide Show script图片轮换
2008/03/03 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
JavaScript Canvas实现验证码
2020/08/02 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
python使用append合并两个数组的方法
2015/04/28 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
基于Python实现扑克牌面试题
2019/12/11 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
python解释器安装教程的方法步骤
2020/07/02 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
Python字符串的转义字符
2022/04/07 Python