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) 

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

电脑不给力运行不了?试试高配云电脑>>
如需1对1人工答疑支持
赞(0) 打赏
软件无法使用?点击查看常见问题说明>>

最近更新

项目实操变现思路分享之AI绘画-诺瓦小站

项目实操变现思路分享之AI绘画

本次和大家分享的实操项目变现思路是AI绘画相关的,虽然AI绘画已经火了很久了,但是仍有很多玩法,有了其它一些AI工具的加持,操作起来也更容易,项目具体内容请看PDF文档。 教程链接: https://afdian.com/p/982e793...

项目实操变现思路分享之AI视频-诺瓦小站

项目实操变现思路分享之AI视频

目前AI视频生成技术有了比较大的进步,AI视频现在已经很流畅丝滑,视频效果也很好,用户也比较喜欢看。各短视频平台AI视频的流量都很大,我们可以通过AI工具创建AI视频来获取流量变现,操作简单上手较快。下面分享一下AI视频的实操变现思路。 项...

AI软件实战变现思路分享之AI音乐-诺瓦小站

AI软件实战变现思路分享之AI音乐

本次和大家分享的AI软件实战变现项目是AI音乐相关的,前两天和大家分享了两个AI音乐生成软件,顺便接着分享一下AI音乐的实战变现思路,项目实操教程下载链接: https://afdian.com/p/99e81c38fe2f11efb2b4...

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

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

支付宝扫一扫

微信扫一扫