2013-10-17 6 views
1

나는 TAPI COM 개체파이썬 TAPI COM 객체는

import win32com.client 
class TapiEvents: 
    pass 

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

에 대한 사용 win32com.client.DispatchWithEvents을 시도하지만 오류를 제공합니다 이 COM 객체가 이벤트를 지원하지 않습니다.

답변

1

동작하는 예제는 전화 사용을 만들기위한

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() 

(CiscoTSP 작업)과 같은

import win32com.client,time 
tapi = win32com.client.Dispatch("TAPI.TAPI.1") 
tapi.Initialize() 
for item in tapi.Addresses: print item.AddressName 
objCrtAddress = [item for item in tapi.Addresses if 'SEP' in item.AddressName][0] 
sNumber='323' 
gobjCall = objCrtAddress.CreateCall(sNumber, 1, 0x8) 
gobjCall.Connect (False) 
예에 대한 너무 많은
+0

덕분에, 이것은 지금까지 사용을위한 내가 찾을 수있는 최고 파이썬의 TAPI에 대한 더 많은 힌트가 나와 있습니다. 어떻게 더 자세히 알 수 있습니까? tapi.EventFilter = 0x1FFFF를이 값으로 설정해야한다는 것을 어떻게 알았습니까?이 이벤트로 필터링 할 수 있습니까? – select

+1

본보기가 유용하다는 사실을 매우 기쁘게 생각합니다. 감사합니다. @select. 정보를 찾는 데 큰 어려움을 겪었습니다. python의 예제 나는 전혀 발견하지 못했습니다. 다음은 C++, C# 및 VB의 몇 가지 링크로, 더 많은 VB를 이해하는 데 도움이되었습니다. [tapi.info] (http://www.tapi.info/default.aspx/TAPI/PSDKSamples.html) (예 ** calldemo.htm ** 많은 도움이되었습니다.) 'tapi.EventFilter = 0x1FFFF' 이 예제에서. [msdn] (http://code.msdn.microsoft.com/TAPI-3-in-C-Get-Lines-and-dd143eaf) 질문이 있으시면 알려주십시오. 도와 드리겠습니다. – Arty