python - Windows上下文 : OleInitialize() failed: "COM error 0x80010106 RPC_E_CHANGED_MODE (Unknown error 0x0ffffffff80010106)"

标签 python pyqt5 pywinauto

我在 Windows 8 中使用 Python 3.4.4(32 位)进行编程。我正在使用 PyQt5 运行一个应用程序,该应用程序运行良好,但由于我安装了 pywinauto 0.6.4 以将重点放在其他应用:

other_app = pywinauto.Application().connect(process=int(code))
other_app.top_window().set_focus()

如果我运行 My_app = QApplication(sys.argv),在控制台中会出现下一条警告消息,没有其他信息:

QWindowsContext: OleInitialize() failed:  "COM error 0x80010106 RPC_E_CHANGED_MODE (Unknown error 0x0ffffffff80010106)"
SetProcessDpiAwareness failed: "COM error 0x80070005  (Unknown error 0x0ffffffff80070005)"

我怀疑这是因为 pywinautoPyQt5.QtWidgets.QApplication 模块之间存在冲突。 “警告”后程序运行良好,但我现在仍然不知道如何修复它。

这是最小的、完整的和可验证的示例:

from PyQt5.QtWidgets import QApplication
import pywinauto
import sys


def main():
    app = QApplication(sys.argv)
    app.exec_()


if __name__ == '__main__':
    main()

最佳答案

根据这个post解决方法是使用 sys.coinit_flags = 2 和警告模块。

import sys
import warnings
warnings.simplefilter("ignore", UserWarning)
sys.coinit_flags = 2
import pywinauto
from PyQt5.QtWidgets import QApplication, QMainWindow


def main():
    app = QApplication(sys.argv)
    w = QMainWindow()
    w.show()
    app.exec_()


if __name__ == '__main__':
    main()

关于python - Windows上下文 : OleInitialize() failed: "COM error 0x80010106 RPC_E_CHANGED_MODE (Unknown error 0x0ffffffff80010106)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51284268/

相关文章:

python - django 服务 : wsgi. py? 'cannot be loaded as Python module'

python - 如何让函数重复自身而不生成退出代码 0?

python - PyQt5:使用设计器创建多个 View 并将它们连接到一个应用程序中

python - 如何知道用户何时完成调整窗口大小?

python - 使用 pywinauto 时出错

python - 寻找在 Win x64 上使用 Pywinauto 的方法

python - Nuitka编译PyQt5脚本时出现错误 "implicit module sip"错误

javascript - 如何使我的 HTTP 请求与表单的行为相同

pyqt5格式化使用多种布局