使用Pywinauto,我如何知道启动的应用程序的名称是什么?

时间:2015-08-11 00:35:52

标签: python pywinauto

我试图玩Pywinauto,我有一个基本的程序,只需启动一个程序,然后点击它,看起来像这样:

from pywinauto import application
app = application.Application()

app.Start_("//PathToGChrome/Google Chrome.exe")

# Google Chrome Starts

app.Google_Chrome.ClickInput(coords=(0,0))

# Returns error:

Could not find 'Google_Chrome` in `dict_keys([])`

但如果我喜欢

app.Start_('Notepad.exe')

# Notepad Starts

app.Notepad.ClickInput(coords=(0,0))

# Foregrounds notepad and clicks in the top left

为什么无法找到Google Chrome?是因为名字中有空格吗?我如何知道Google Chrome的正确名称?

1 个答案:

答案 0 :(得分:1)

对于窗口标题,内部搜索pywinauto似乎失败了,因为Chrome的窗口进程ID与Chrome的启动器的PID不同。最简单的方法就是使用Swapy帮助应用程序(https://code.google.com/p/swapy/)它有点过时但仍然可以帮助您生成有效的代码。至少从一开始。 启动Chrome后运行Swapy并在列表中找到应用程序标题。右键单击该项目并选择要执行的操作。这是代码示例:

import pywinauto

pwa_app = pywinauto.application.Application()
w_handle = pywinauto.findwindows.find_windows(title=u'New Tab - Google Chrome', class_name='Chrome_WidgetWin_1')[0]
window = pwa_app.window_(handle=w_handle)
window.ClickInput()