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软件用不了?2元爽玩4090: 立即体验>>

热门大语言模型API免费体验: 立即获取>>

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

最近更新

祝贺凡人修仙传2026年新年番开播同时在线人数超64万-诺瓦小站

祝贺凡人修仙传2026年新年番开播同时在线人数超64万

今天6月13日凡人修仙传新年番开播,同时在线人数破64万(非最高在线人数,只是我看到的在线人数),作为凡人5年老粉,必须发个帖祝贺一下。 我比较喜欢看动漫,各种类型看了很多,具体不清楚多少,像斗罗斗破之类看了一大半终究是没能看下去,还是雾山...

Claude居然自称“本人”-诺瓦小站

Claude居然自称“本人”

今天在和Claude聊网文写作的时候,Claude回复中居然自称本人,这让我有点震惊。 我经常会和AI聊工具功能对比等话题,ChatGPT、Gemini、Claude这些以前我记得从来没有自称过本人的,好像都是本模型,本工具等等,反正从来没...

免费在线HTML转markdown工具

经常看一些在线文档,想复制给AI参考的话不方便直接复制,转换成markdown再给AI阅读会更简单明了,也方便自己查阅,这里给大家推荐两个在线的免费HTML转markdown网站。 1、https://d1tools.com/tools/c...

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

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

支付宝扫一扫

微信扫一扫