python 句柄窗口指定位置截图_Python自动操作GUI神器PyAutoGUI

1b5e1028b7c214d685f74f19d2db7896.png
本文共3500余字,预计阅读时间12分钟,本文知乎连接:Python自动操作GUI神器PyAutoGUI,本文同步发布于silaoA的博客和微信公众号平台。 关注学习了解更多的Cygwin、Linux、Python技术。

日常使用计算机,命令行程序可以说是为批量操作文件而生,但作为普通用户,最多的还是通过鼠标键盘操作形形色色的图形界面程序。试想下面一个场景:有成千上万个文件,都需要通过图形界面进行同样的一套编辑、保存工作,靠手工一遍一遍地重复做,累死人不说,时间久了必然出现错误,作为程序猿,怎么能忍重复3次以上的工作,必须利用程序自动化。要想图形界面也能像命令行程序那样精确控制,就需要GUI自动化工具了。不得不赞Python生态之丰富,GUI自动化自动化工具也有多种库可选,比如Windows平台的pywin32,以及本文主角——跨平台的PyAutoGUI

目 录

  • 0x00 PyAutoGUI简介
  • 0x01 PyAutoGUI使用入门
    • 安装
    • 快速上手
      • 1. 通用功能
      • 2. 鼠标控制
      • 3. 键盘控制
      • 4. 消息窗口
      • 5. 截图相关
  • 0x02 任务示例
  • 参考
  • 更多阅读

0x00 PyAutoGUI简介

pywin32直接包装了几乎所有的Windows API,可以方便地从Python直接调用,把Windows API按照功能分了一些大类,每一个大类作为一个模块,常见如win32apiwin32guiwin32com等,其中win32com使用微软独门的COM接口技术进行进程间通信,可以实现控制GUI程序。但前提是,这些程序得支持COM接口。win32api则更加原始,完全通过Win32 API调用获得/生成窗口句柄、发送消息事件,十分繁琐。

PyAutoGUI的思路与此完全不同,它是接管了鼠标、键盘使用权,基本上完全照搬人的操作,底层不必套牢在Windows系统,没错,它是跨平台的。官网地址:https://github.com/asweigart/pyautogui。原本,这类GUI自动化工具的初衷是给GUI程序自动化测试用,产生点击鼠标、敲击键盘的行为,在日志中记录下消息事件和GUI程序的响应结果,事后分析GUI程序可能存在的bug。不过,既然能产生点击鼠标、敲击键盘的行为,我们就可以用来控制GUI程序批量完成文件编辑、保存工作。

按照官方的说法,PyAutoGUI给人类用的GUI自动化神器,简单高效、函数分类清晰,它被awesome-python、awesome-python-cn收录。

0x01 PyAutoGUI使用入门

安装

推荐通过pip安装,一行命令搞定。

python -m pip install -U pyautogui

PyAutoGUI依赖于pyscreezepymsgboxpytweening,上述命令会自动安装这3个库。安装完成后可以发现,在site-packagespyautogui有6个文件,名字带java、osx、win、x11的是在不同平台的实现方案,再在__init__.py__main__.py中检测当前系统平台进行封装。其中,java平台的实现文件为空,猜测是未来计划支持的,先占个坑。

__init__.py
__main__.py
_pyautogui_java.py  # 空文件,猜测是未来支持
_pyautogui_osx.py
_pyautogui_win.py
_pyautogui_x11.py

快速上手

PyAutoGUI设计简洁,相关符号经过内部import之后,被封装在pyautogui单个模块中,因此Python程序中只要import pyautogui之后便可通过.符号访问pyautogui中的函数、变量。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值