tkinter与pywinauto使用中异常解决方式

笔者在调用tkinter和pywinauto.application的过程中发现,会出现阻塞问题。tkinter无法正常运行。
这是因为pywinauto和tkinter的一些默认配置冲突导致的。

对于这种情况,大家可以尝试在添加以下代码进行解决:

import sys
sys.coinit_flags = 2  # COINIT_APARTMENTTHREADED

import pywinauto

官方的解释是,在pywinauto导入之前,如果没有手动设置模型(单线程或多线程),那么pywinauto就会在初始化前默认使用Multithreading COM model (MTA) 。而MTA模式应该会与tkinter冲突,导致原本应出来的窗口一直出不来(freezed)。

所以大家遇到这种情况,可以参照以上的方法进行解决。附上参数解释:

0 - Multi-Threaded Apartment model (MTA)
2 - Single-Threaded Apartment model (STA)

大家也可以去官网参看详细解释:https://pywinauto.readthedocs.io/en/latest/HowTo.html#com-threading-model

知识的价值在于传播,give me a like.

你可能感兴趣的:(tkinter与pywinauto使用中异常解决方式)