网站首页 > 技术文章 正文
最近的项目需要用一个软件批量生产出一些文件,但是这个软件并没有提供二次开发接口。这也难不倒我们强大的 Python!
先介绍一个 Python 库 pywinauto。它可以实现 Windows 的界面自动化,可以对窗口和控件进行操作,而且非常简单。
pywinauto 实现了两套引擎 win32 和 UIA(UI Automation)。win32 引擎是利用了界面控件的 win32 消息进行交互,标准 Windows 程序的控件都能支持这些消息。UIA 是一套无障碍接口,给盲人用的读屏软件和界面测试软件都会用到此接口。UIA 是 COM 接口,几乎所有语言都能调用它。通过 UIA 在界面上取得信息,也能操作界面的控件。国外的比较有名的软件都会支持这两种接口,或者支持其中一个。国内软件,几乎不支持。
首先安装 pywinauto
pip install pywinauto
导入需要的库
from pywinauto import application
from pywinauto.keyboard import send_keys
启动一个记事本
app = application.Application()
app.start(r"notepad.exe")
app['Notepad'].wait('ready')
在记事本里输入一些文字
app['Notepad']['Edit'].set_edit_text("测试自动化输入 abc")
选择文件菜单退出记事本
app['Notepad'].menu_select("文件(&F)->退出")
退出时,由于文件没保存会有个提示框。
我们这里选“不保存”,看到按钮上那个带下划线的 N 了吗?它的意思是按 Alt + N 就可以启动那个按钮。下面我们模拟按键 Alt + N 退出程序。 pywinauto 使用 % 来代替 Alt。
send_keys("%N")

上面只是一些简单的测试,如果要想真正把这个库用起来,还是需要 Win32 底层的开发知识和 COM 编程知识。Python 只是胶水,把这些技术串在一起。但是,使用 Python 还是极大地提高了开发效率。
如果喜欢,请关注一下吧!
猜你喜欢
- 2024-12-29 诶多~Django真的是最可爱的Web框架了啦!
- 2024-12-29 几个高性能Python网络框架,高效实现网络应用
- 2024-12-29 Python在云计算中的应用:AWS、Azure和Google Cloud平台
- 2024-12-29 Python工具箱——专门为编程开发人员所打造的Python辅助工具
- 2024-12-29 软件加密技术,python制作一个超强的加密软件
- 2024-12-29 有哪些python库让你相见恨晚
- 2024-12-29 自学python的六个宝藏app
- 2024-12-29 创业公司都在使用的3款Python库
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)