Pywinauto app = Application.start()不起作用并给出错误

时间:2018-01-18 00:30:59

标签: python python-3.x pywinauto

当我尝试使用pywinauto启动exe文件时出错。这是我的代码:

from pywinauto.application import Application
app = Application()
app.Start("D:\dragonboy160\dragonboy160.exe")

据我所知,应该有效。 app = Application().start("")也不起作用。我也试过像这样设置导入:from pywinauto import Application当我在PyCharm中运行python文件时出现这个错误:

"C:\Program Files (x86)\python.exe" D:/dragonboy160/screenview.py
Traceback (most recent call last):
  File "D:/dragonboy160/screenview.py", line 2, in <module>
    import pywinauto
  File "C:\Program Files (x86)\lib\site-packages\pywinauto\__init__.py", line 40, in <module>
    from . import findwindows
  File "C:\Program Files (x86)\lib\site-packages\pywinauto\findwindows.py", line 42, in <module>
    from . import controls
  File "C:\Program Files (x86)\lib\site-packages\pywinauto\controls\__init__.py", line 36, in <module>
    from . import uiawrapper # register "uia" back-end (at the end of uiawrapper module)
  File "C:\Program Files (x86)\lib\site-packages\pywinauto\controls\uiawrapper.py", line 44, in <module>
    from ..uia_defines import IUIA
  File "C:\Program Files (x86)\lib\site-packages\pywinauto\uia_defines.py", line 35, in <module>
    import comtypes.client
  File "C:\Program Files (x86)\lib\site-packages\comtypes\client\__init__.py", line 33, in <module>
    gen_dir = _find_gen_dir()
  File "C:\Program Files (x86)\lib\site-packages\comtypes\client\_code_cache.py", line 71, in _find_gen_dir
    result = os.path.abspath(gen_path[-1])
IndexError: list index out of range

我搜索并搜索过,似乎没有其他人遇到过这个问题。我也尝试打开其他.exe文件,但得到了同样的错误。导致此错误的原因是什么?如何解决?

2 个答案:

答案 0 :(得分:2)

这是一个导入问题(在第一行)。

看起来comtypes无法在没有管理员权限的情况下将缓存文件写入Program files。理论上它可以在comtypes端修复(或者通过将Python重新安装到另一个文件夹,如C:\Python3x),但是你必须以管理员身份运行脚本,因为其他操作系统限制(pywinauto将警告最近的未来权利不足,现在它是沉默的。)

答案 1 :(得分:-1)

我遇到了同样的问题,我设法通过从Windows禁用UAC来解决此问题。