可以直接从调制解调器或电话线读取字节而不丢失任何信息吗?
如果在响铃后使用SerialPort,则在ReceiveData事件上不会发生任何事情。
我想直接从线路上读取来电显示信息。我的调制解调器不支持来电显示。

最佳答案

检测来电显示的正确方法是使用tapi api。
你可以在这里找到一个C语言库(称为库)。
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();

10-06 13:30