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

Pywinauto app = Application.start() is not working and giving error

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

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

据我所知应该可以。 app = Application().start("") 也不行。我也试过像这样设置导入: from pywinauto import Application 当我 运行 python 文件 PyCharm:

时出现这个错误
"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 文件,但得到了同样的错误。是什么导致了这个错误,我该如何解决?

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

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

我遇到了同样的问题,我设法通过从 Windows 禁用 UAC 来修复它。