VFP 中实现电话拨号 用VFP 管理名片簿、 通信录时, 经常要用到电话拨号程序。 如直接使用Windows 9 8自带的拨号程序,VFP
程序的完整性和界面一致性都将受到影响。
设计思想 要实现拨号, 只需让程序往串口写入at 命令。 利用VFP 对Microsoft C ommControl 控件的支持可以方便地控制电话。假设有一数据表Commun ication .dbf ,内容如下:电话号码其他张三1234567ETC ……将上述表引入表单Form1的数据环境之后, 在Form1上加入下列控件, 如 下所示: 控件名称控件类型控件属性值 Text1Text ControlSource =communication .姓 名 Text2Text ControlSource =communication .电 话号码 Command1Command Button Caption =“拨号” Command2Command Button Caption =“挂断” Command3Command Button Caption =“下条记录” 在表单中加入OLE 容器控件, 当提示菜单出现时, 选择Insert Control , 在Control Type (控件类型) 栏内找到并双击Microsoft CommC ontrol ,这时表单上会出现一个带电话标志的图标,设定该控件的名称为Tele phone ,这就是在VFP 中实现电话拨号的核心部件。选择Telephone 控 件,单击鼠标右键,选择MSCommProperties 菜单项,可以更加灵活地控 制该控件。 设定事件代码 在Form1的Init 事件中加入下列代码: go top *设定通讯端口号,可根据你的实际情况设定 *笔者的Modem 是接在Com3上的thisform. telephone . C ommPort =3 *设定端口的通讯速率(波特率) 、通讯字长以及是否进行校验 thisform. telephone . Settings =″9600, , 1″ n 8, 在Command1的Click 事件中加入下述代码: this .enabled =.not .this .enabled thisform.command2.enabled =.t . *打开
通信端口,准备
工作 thisform.telephone .portopen =.t . *ATDT表示执行AT命
令中的DT指令,D 表 示首先挂断电话 *T表示使用音频拨号,如果你的电话使用的 是脉冲方式拨号 *请将T改为P,CHR(13)表示发送命令完毕 thisform.telephone .output =″ATDT″+电话号码+ chr(13) wait wind″正在拨号,请稍候″nowa
在Command2的Click 事件中写入下列代码: thisform.command1.enabled =.t . thisform.command2.enabled =.f . *关闭通信端口 thisform.telephone .portopen =.f . 在Command3的Click 事件中写入下列代码: skip if eof() go top endi thisform.refresh 经过上面几个步骤,大功告成了。戴上耳机,对着话筒。