如何使用Python控制Windows应用程序

5

我已在我的Windows PC上安装了这个应用程序,我想使用Python启动该应用程序,并选择下拉选项,在该应用程序中执行其他操作。

我能够使用os.system命令启动应用程序,但是我无法继续进行。

我希望我的程序能够做以下事情: * 从下拉菜单中进行选择 * 点击一个按钮

我的应用程序如何控制另一个应用程序的用户界面?


3
当你问这样的问题时,没有人可以帮助你,可能会有100个问题(应用程序中的错误,您可能做错了什么等)。 - Teemo
嗨,Teemo,感谢您的回复, - Baslingappa Bhujang
我只是想知道在启动应用程序后如何继续,可以使用哪些模块、函数来选择下拉菜单。我是Python的新手。我正在使用Windows机器。 - Baslingappa Bhujang
如果我理解正确的话,您想从您的代码中控制一个Windows应用程序。特别地,您希望您的代码能够驱动Windows应用程序的用户界面。是这样吗? - RJHunter
是的,你说得对,RJ。 - Baslingappa Bhujang
任何帮助都将不胜感激。 - Baslingappa Bhujang
3个回答

15

通常,一个应用程序为用户提供了一个用户界面(UI)以及一个应用程序编程接口(API)。

  • 人类使用键盘和鼠标用户界面(UI)交互
  • 应用程序使用编程应用程序编程接口(API)交互

UI是为人类设计的,而API是为计算机设计的。

有时候可以使用编程控制另一个程序的用户界面 -- 让您的程序看起来像在使用键盘和鼠标。这种技术通常被称为"UI自动化",执行此操作的程序有时被称为"机器人"。

这是个大话题,可能相当复杂。如果可以的话,几乎总是最好使用API:它更快、更简单、更可靠。

如果确实需要使用UI自动化,有一些不同的工具可以帮助。

由于你在询问Python,所以这里有一些可与Python配合使用的UI自动化工具:

  • AutoIT是独立产品,但可以使用Python进行脚本编写。
  • PyWinAuto是专为Python设计的。
  • Sikuli使用计算机视觉来查找屏幕上的部分。我相信它也带有录制工具。

再次强调:UI自动化很奇怪,也很难。如果可能的话,请尽量使用API,这样您的生活会轻松得多。


感谢RJ的回复。如果找到任何API,我会尝试使用它们。 - Baslingappa Bhujang
嗨,我尝试使用pywinauto,但是当我尝试使用app.start启动应用程序时,我遇到了以下错误:打开DSP COF文件'C:\ Users \ general \ AppData \ Local \ Programs \ Python \ Python35-32 \ t1.cof'时出错!错误详情:系统找不到指定的文件。损坏或不兼容的安装,正在退出...有人可以帮助我解决这个问题吗? - Baslingappa Bhujang
1
开始一个新的问题,标记为“pywinauto”,这样熟悉pywinauto的人就会看到它。解释一下你如何安装Python,解释一下你如何安装PyWinAuto,展示你的代码,展示你如何运行它,展示错误,并解释你期望发生什么。祝你好运。 - RJHunter

4
  1. You need to install pywinauto package

  2. Try the following code to run the .exe file

    from pywinauto import application
    
    app =  application.Application()
    app.start("Notepad.exe")
    

不需要拼写notepad.exe的完整路径吗? - Egret
在CMD中,如果您只调用“notepad”,它将启动记事本,无需完整路径。 - Kh4lid MD

-2

给你,这是代码:(使用os ^_-)

import os
os.startfile('your exe file address')

这个答案显然没有任何用处,因为提问者已经表明他们可以启动他们的应用程序,他们苦苦挣扎的部分(你甚至没有开始解决)是通过自动化控制 UI。 - Neil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接