2010-06-27 133 views
13

是否可以直接從調制解調器或電話線讀取字節而不會丟失任何信息? 如果使用SerialPort振鈴後沒有發生ReceiveData事件。如何檢測來自電話線的來電號碼?

我想直接從行讀取來電顯示信息。我的調制解調器不支持來電顯示。

回答

16

檢測來電顯示的正確方法是使用TAPI API。

您可以在這裏找到一個C#TAPI庫(稱爲ITAPI3)。 http://www.julmar.com/tapi/

查看2006年4月4日的博客文章,瞭解有關在64位Windows上構建與其鏈接的程序的一些注意事項。

而這裏的示例代碼:

TTAPI tapi = new TTAPI(); 

tapi.TE_CALLINFOCHANGE += (sender, e) => 
{ 
    if (e.Cause == CALLINFOCHANGE_CAUSE.CIC_CALLERID) 
    { 
     Console.WriteLine(e.Call.get_CallInfo(CALLINFO_STRING.CIS_CALLERIDNUMBER)); 
     Console.WriteLine(e.Call.get_CallInfo(CALLINFO_STRING.CIS_CALLERIDNAME)); 
    } 
} 

tapi.Initialize(); 

// ... 
// Keep the TAPI object in memory so it can listen for events 
// ... 

tapi.ShutDown();