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.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容