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 错误和异常小结
Oct 09 Python
使用Python中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
解决Django中多条件查询的问题
Jul 18 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
keras 多gpu并行运行案例
Jun 10 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
Python开发五子棋小游戏
Apr 28 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 checkbox 取值详细说明
2010/08/19 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
初学Javascript的一些总结
2008/11/03 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
Django中使用locals()函数的技巧
2015/07/16 Python
python数据处理实战(必看篇)
2017/06/11 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
客服工作职责
2013/12/11 职场文书
小学生元旦广播稿
2014/02/21 职场文书
2014教师年度工作总结
2014/11/10 职场文书
感恩主题班会教案
2015/08/12 职场文书
anaconda python3.8安装后降级
2021/06/11 Python
深入理解Pytorch微调torchvision模型
2021/11/11 Python
zabbix配置nginx监控的实现
2022/05/25 Servers
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers