笔者在调用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.