使用 pywinauto 的 uTorrent 自动化

uTorrent Automation using pywinauto

我正在尝试使用 pywinauto 库实现 utorrent 自动化。我想添加 URL 的种子文件。这个选项在文件菜单下。我可以打开 uTorrent,然后什么也没有发生。我使用 Swapy 来生成这段代码。只有当我 运行 swapy 中的代码时,下面的框才会打开。但是当我将它保存到一个文件中并使用 cmd 运行 时,只有 utorrent 打开并且在 cmd 中出现回溯。

from pywinauto.application import Application

app = Application().Start(cmd_line=u'"C:\Users\User\AppData\Roaming\uTorrent\u Torrent.exe" ')
torrentdfb = app[u'\xb5Torrent4823DF041B09']
torrentdfb.Wait('ready')
menu_item = torrentdfb.MenuItem(u'&File->Add Torrent from &URL...\tCtrl+U')
menu_item.Click()

app.Kill_()

Traceback:
Traceback (most recent call last):
File "AddTorrent.py", line 5, in <module>
torrentdfb.Wait('ready')
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 380, in Wait
WaitUntil(timeout, retry_interval, lambda: self.__check_all_conditions(check_method_names))
File "C:\Python27\lib\site-packages\pywinauto\timings.py", line 308, in WaitUntil
raise err
pywinauto.timings.TimeoutError: timed out

我是 python 编码的新手,我不是专家。如果您提供解决我的问题或代码的解释,那将很有帮助。谢谢!!

uTorrent 正在生成另一个进程,我是这样得到的:

>>> app.windows_()
[]
>>> app.process
6096
>>> app.connect(title_re=u'^μTorrent.*(build \d+).*')
<pywinauto.application.Application object at 0x000000000405C240>
>>> app.process
4044L

这是适合我的最终代码(使用 32 位 uTorrent 和 32 位 Python 2.7):

import pywinauto

app = pywinauto.Application().start(r'uTorrent.exe')
time.sleep(5) # because method connect() has no timeout param yet (planned for 0.6.0)
app.connect(title_re=u'^\u03bcTorrent.*(build \d+).*')

main_window = app.window_(title_re=u'^\u03bcTorrent.*(build \d+).*')
main_window.MenuSelect(u'&File->Add Torrent from &URL...\tCtrl+U')

app.AddTorrentFromURL.Edit.SetText('some URL')
app.AddTorrentFromURL.OK.Click()

位数很重要。如果我使用 64 位 Python.

,32 位 uTorrent 会崩溃