使用Pywinauto通过Python自动化Flash程序

2 投票
1 回答
1944 浏览
提问于 2025-04-17 01:52

我正在尝试向在Windows 7上运行的Firefox中的一个Flash程序发送几个基本的文本命令,但我无法让pywinauto正常工作。

目前,我只完成了一个非常基础的任务,就是通过以下代码连接到Firefox的插件容器:

from pywinauto import application
app = application.Application()
app.connect_(path = r"c:\Program Files (x86)\Mozilla Firefox\plugin-container.exe")

接下来的步骤似乎是这样的:

app.plugin-container.Edit.TypeKeys('Text')

但是,我无法通过'.plugin-container'或这些词的任何组合来引用插件容器窗口。我尝试在connect_()函数中添加一个标题变量,并且我想了很多办法来找出如何输入命令。

我参考的例子是记事本的示例:

from pywinauto import application
app.start_(ur"notepad.exe")
app.Notepad.Edit.TypeKeys(u"{END}{ENTER}SendText d\xf6\xe9s "
        u"s\xfcpp\xf4rt \xe0cce\xf1ted characters!!!", with_spaces = True)

对我来说,使用pywinauto还是Firefox都无所谓。如果用其他模块或Internet Explorer来做这件事更简单,我也乐意尝试,只要能完成任务就行。我使用的是Python 2.7.2,比较希望不更换版本。

任何帮助都非常感谢。我在这一切中感到很迷茫。

1 个回答

4

作为pywinauto的作者,我觉得你可能会遇到一些困难。pywinauto主要是用来处理标准的窗口控件的,而我认为Flash控件并不算是标准的窗口控件(比如按钮、编辑框等)。

从我个人的经验来看,我觉得Sikuli可能是一个更好的起点(http://sikuli.org/)。另外一个选择可能是'http://code.google.com/p/flash-selenium/' - 我刚刚在网上搜索了“自动化Flash输入”,这个链接就是我点开的第一个文章里找到的。

谢谢你尝试使用pywinauto,但我认为它并不太适合用来自动化Flash。

撰写回答