【问题标题】:COM error while reconnecting to UIA app using Pywinauto through RPyC通过 RPyC 使用 Pywinauto 重新连接到 UIA 应用程序时出现 COM 错误
【发布时间】:2018-06-13 01:21:00
【问题描述】:

我已经使用 pywinauto 连接到一个 Windows 应用程序,如下所示,

import subprocess
sp = subprocess.call("start shell:AppsFolder\myapp!App", shell=True)

from pywinauto import application
app = application.Application(backend="uia")
my_app = app.connect(title="myapp", class_name="ApplicationFrameWindow")

但这是通过 Python 的 RPyC 连接。

第一次,这段代码运行良好,但如果我使用相同的 RPyC 连接再次运行我的脚本,我会看到以下错误:

File "C:\Python27\lib\site-packages\pywinauto\application.py", line 944, in connect
self.process = findwindows.find_element(**kwargs).process_id
File "C:\Python27\lib\site-packages\pywinauto\findwindows.py", line 84, in find_element
elements = find_elements(**kwargs)
File "C:\Python27\lib\site-packages\pywinauto\findwindows.py", line 197, in find_elements
cache_enable=True)
File "C:\Python27\lib\site-packages\pywinauto\uia_element_info.py", line 272, in children
return self._get_elements(IUIA().tree_scope["children"], cond, cache_enable)
File "C:\Python27\lib\site-packages\pywinauto\uia_element_info.py", line 261, in _get_elements
ptrs_array = self._element.FindAll(tree_scope, cond)
COMError: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))

如果我关闭现有的 RPyC 连接并打开另一个会话,那么上面的代码可以正常工作。我无法弄清楚为什么我会看到这个错误。有什么想法吗?

【问题讨论】:

  • 它看起来像一个已知的错误。可以试试最新的master分支吗?
  • @VasilyRyabov,我试过pywinauto-0.6.3。我仍然看到同样的问题
  • 0.6.3 与最新的 master 分支不同。
  • @VasilyRyabov,太棒了,它正在使用 master 分支。谢谢。您可以将其添加为答案,我会投票。

标签: python pywinauto rpyc


【解决方案1】:

这是一个已在 master 分支中修复的已知问题。 pywinauto==0.6.4 即将发布。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多