AI软件下载
有趣网站推荐及实用软件下载

pywin32 pywintypes.com_error: (-2147417842, '应用程序调用一个已为另一线程整理的接口。

今天在使用pywin32库操作word文档的时候,每当向word文档输入内容就会报错,部分错误信息如下:

Exception ignored from cffi callback .callback_ptr at 0x0000018937783760>:
Traceback (most recent call last):
File “D:\python\NovaVoiceTyper\myenv\lib\site-packages\sounddevice.py”, line 857, in callback_ptr
return _wrap_callback(callback, data, frames, time, status)
File “D:\python\NovaVoiceTyper\myenv\lib\site-packages\sounddevice.py”, line 2735, in _wrap_callback
File “>”, line 2, in TypeText
pywintypes.com_error: (-2147417842, ‘应用程序调用一个已为另一线程整理的接口。’, None, None)

提示信息说接口被占用,大体意思就是你应用启用了多线程,最开始的那个线程创建了word应用,后面新启动的线程还是调用原来创建的那个word应用,所以会被占用,解决方法就是每次在启动新的线程的时候都创建一次word应用

如我原来代码:

word = win32com.client.Dispatch("Word.Application")
word.Visible = True  # 使Word可见

# 打开已有的文档
doc = word.Documents.Open(output_file)    
selection = word.Selection    

def callback(indata, frames, time, status):
    ......
    selection.TypeText(res) 

正确方法应该是把创建word的过程放进callback里,代码应该如下:

......
def callback(indata, frames, time, status):
    ......
    word = win32com.client.Dispatch("Word.Application")
    word.Visible = True  # 使Word可见

    # 打开已有的文档
    doc = word.Documents.Open(output_file)    
    selection = word.Selection  
    selection.TypeText(res) 

这样的话再重新运行应用,就不会报接口被占用的错误了。

AI应用在线一键启动,低价爽玩4090:立即体验>>

软件催更及1对1人工答疑支持: https://nuowa.net/1806
赞(0) 打赏
软件无法使用?点击查看常见问题说明>>

最近更新

comfyui视频人物换主体工作流及模型下载-诺瓦小站

comfyui视频人物换主体工作流及模型下载

本次分享一个好玩的视频人物换主体工作流,本工作流可以使用一张图片中的主体替换视频中的人物主体。比如抖音上很多热门的猴子炒饭,奥特曼炒饭,猴子vlog等等,都可以使用人物主体替换把原来视频中的人物替换成指定的人物。 comfyui工作流节点使...

凡人修仙传动画韩立高清图片壁纸素材AI绘画图集-诺瓦小站

凡人修仙传动画韩立高清图片壁纸素材AI绘画图集

恭迎韩天尊! 祝贺韩天尊顺利结婴! 热门国漫凡人修仙传动画已经更新了5年了,最新一集,主人公韩立顺利结婴,成为一名元婴修士。我属于是比较喜欢看动漫的,看过的动漫估计没过百也得大几十了,热门国漫大多都看过。凡人修仙传算是最喜欢的动漫之一,韩立...

觉得文章对你有帮助就打赏一下作者

非常感谢你的打赏,我将有更多的动力继续提供优质内容,让我们一起创建更加美好的世界!

支付宝扫一扫

微信扫一扫