我是一个刚开始学习和开发python程序的新手,我目前正在从事一个项目,这个项目需要一个带有音频队列的用户通知。
我使用键盘模块(https://github.com/boppreh/keyboard)作为热键,所以当按下热键时,它将运行一个函数。我的代码如下:
import win32com.client
from keyboard import add_hotkey
Hotkey = 'g'
add_hotkey(Hotkey, lambda: Notification('Hello'))
def Notification(value):
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak(value)
return 我面临的问题是,当运行脚本崩溃时,我无法排除错误的原因是:带有错误的Python控制台
发布于 2018-04-17 17:46:24
下面是您想要做的事情:在从add_key回调调用时,需要对COM对象进行协同初始化。
这是正式文件:
在任何线程创建或操作COM对象之前,它必须执行一些初步初始化才能建立与COM库的关系。由于这个过程,COM创建了一个适合初始化例程的单元: CoInitialize创建了一个单线程单元(STA),而带有COINIT_MULTITHREADED标志的CoInitializeEx生成了一个多线程单元。CoInitialize/CoInitializeEx调用不会全局初始化COM库,只初始化调用线程的使用,因此必须记住,这种初始化应该在每个线程的基础上进行。
关于更多的初始化链路
下面的是固定代码:
import keyboard
import win32com.client
import pythoncom
Hotkey = 'g'
def Notification(value):
pythoncom.CoInitialize()
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak(value)
keyboard.add_hotkey(Hotkey, Notification, args=(["Hello"]))
keyboard.wait()https://stackoverflow.com/questions/49884157
复制相似问题