[转]如何在C#中开发来电显示功能遇到的问题?

因为公司现在需要开发一套CallCenter系统,需要客户来电的时候能够自动从数据库中检索出相关的资料,所以我打算用C#+MSCOMM来开发,但是由于是第一次开发所以有些不知道怎么下手。

比如:

在Form_Load里面我是这么写的

axMSComm1.CommPort = System.Convert.ToInt16(1);

axMSComm1.Settings = "9600,N,8,1";

if (!axMSComm1.PortOpen)

axMSComm1.PortOpen = true; //打开串口

axMSComm1.InputLen = 0; //清除接收缓冲区

axMSComm1.DTREnable = true; //置DTR有效

axMSComm1.RTSEnable = true; //置RTS有效

axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeText;

axMSComm1.RThreshold = 1; //设置为接收缓冲区每接收一个字符将引发一次OnComm事件

这样的话是不是设置就ok了?

每次只要Modem所在的Com1口有信号进来,我如下来处理

private void axMSComm1_OnComm(object sender, System.EventArgs e)

{

string strTel=this.axMSComm1.Input;

}

就可以提取到每次相应的信息了??可是我做的时候怎么老是不成功呢?有的时候在axMSComm1.Settings = "9600,N,8,1";地方也有异常发生,或者是根本截获不到任何信息,我测试的环境是Winxp+VS.Net2003,电脑上现在没有modem我就是用下Com1端口测试,按说我的网卡应该走的是COM1端口吧?不可能网卡上从来接受不到数据的吧?郁闷中,各位帮帮忙啊

设置MSComm控件属性

InBufferSize=1024;

Inputlen=0;

InputMode=0;

Rthreshold=1;

RTSEnable=True;

Settings=“9600,N,8,1";

Sthreshold=0。

首先初始化Modem,然后等待来电。当有来电时,MSComm产生OnComm事件。

Modem送出的信息格式为“DATE = 月日回车换行TIME = 时分回车换行NMBR = 电话号码回车换行”。在OnComm事件处理程序中对读入信息进行截取

"AT#C + 回车

是初始化Modem的指令,以字符方式发给Modem

当有来电时在OnComm事件中接收就行了