龙空技术网

Python 自动控制任何软件 ...

程序员马之人 1282

前言:

目前各位老铁们对“python怎么操作其他软件”都比较关心,朋友们都想要剖析一些“python怎么操作其他软件”的相关资讯。那么小编在网摘上汇集了一些对于“python怎么操作其他软件””的相关资讯,希望姐妹们能喜欢,姐妹们快快来学习一下吧!

最近的项目需要用一个软件批量生产出一些文件,但是这个软件并没有提供二次开发接口。这也难不倒我们强大的 Python!

先介绍一个 Python 库 pywinauto。它可以实现 Windows 的界面自动化,可以对窗口和控件进行操作,而且非常简单。

pywinauto 实现了两套引擎 win32 和 UIA(UI Automation)。win32 引擎是利用了界面控件的 win32 消息进行交互,标准 Windows 程序的控件都能支持这些消息。UIA 是一套无障碍接口,给盲人用的读屏软件和界面测试软件都会用到此接口。UIA 是 COM 接口,几乎所有语言都能调用它。通过 UIA 在界面上取得信息,也能操作界面的控件。国外的比较有名的软件都会支持这两种接口,或者支持其中一个。国内软件,几乎不支持。

首先安装 pywinauto

pip install pywinauto
导入需要的库
from pywinauto import applicationfrom 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 还是极大地提高了开发效率。

如果喜欢,请关注一下吧!

标签: #python怎么操作其他软件