带有事件的Python TAPI COM对象

2024-09-30 05:15:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用win32com.client.DispatchWithEvents对于TAPI COM对象

import win32com.client
class TapiEvents:
    pass

tapi = win32com.client.DispatchWithEvents("{21D6D48E-A88B-11D0-83DD-00AA003CCABD}",TapiEvents)

但它给出了一个错误: 此COM对象不支持事件。在


Tags: 对象importcomclient错误事件passclass
1条回答
网友
1楼 · 发布于 2024-09-30 05:15:20

工作示例如下(使用CiscoTSP)

import win32com.client
cls="TAPI.TAPI.1"
# need for gen_py
ti = win32com.client.Dispatch(cls)._oleobj_.GetTypeInfo()
tlb, index = ti.GetContainingTypeLib()
tla = tlb.GetLibAttr()
win32com.client.gencache.EnsureModule(tla[0], tla[1], tla[3], tla[4], bValidateFile=0)

class TapiEvents(win32com.client.getevents(cls)):
    def OnEvent(self, ev1,ev2): 
        print "OnEvent"

tapi=win32com.client.Dispatch(cls)
tapi.Initialize() # must run after Dispatch and before TapiEvents
events=TapiEvents(tapi)
tapi.EventFilter = 0x1FFFF

for addr in tapi.Addresses: 
    try:
        tapi.RegisterCallNotifications(addr,True,True,8,0)
    except:
        pass

import Tix
r=Tix.Tk()
r.mainloop()

打电话使用

^{pr2}$

相关问题 更多 >

    热门问题