Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WindowsContext: OleInitialize() failed: "COM error 0x80010106 RPC_E_CHANGED_MODE (Unknown error 0x0ffffffff80010106)"

I'm programming in python 3.4.4 (32 bits), in windows 8. I'm running an app with PyQt5, the app was working well, but since i installed pywinauto 0.6.4 to set the focus on other app with:

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

if i run My_app = QApplication(sys.argv), in console appears the next warning message, with no other information:

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

I suspect that's because there is a conflict between the pywinauto and the PyQt5.QtWidgets.QApplication modules. After the "warning" the program runs good, but i still don't now how to fix it.

This is the Minimal, Complete, and Verifiable example:

from PyQt5.QtWidgets import QApplication
import pywinauto
import sys


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


if __name__ == '__main__':
    main()
like image 977
JoakoLowRider Avatar asked Jul 11 '18 11:07

JoakoLowRider


1 Answers

According to this post a workaround is to use sys.coinit_flags = 2 and warning module.

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()
like image 53
eyllanesc Avatar answered Oct 14 '22 23:10

eyllanesc