VFP中完成電話撥號
發表時間:2023-08-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]用VFP 管理名片簿、通信錄時,經常要用到電話撥號程序。如直接使用Windows 98自帶的撥號程序,VFP 程序的完整性和界面一致性都將受到影響。 設計思想 要實現撥號,只需讓程序往串口寫...
用VFP 管理名片簿、通信錄時,經常要用到電話撥號程序。如直接使用Windows 98自帶的撥號程序,VFP 程序的完整性和界面一致性都將受到影響。
設計思想
要實現撥號,只需讓程序往串口寫入at 命令。利用VFP 對Microsoft CommControl 控件的支持可以方便地控制電話。假設有一數據表Communication .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 CommControl ,這時表單上會出現一個帶電話標志的圖標,設定該控件的名稱為Telephone ,這就是在VFP 中實現電話撥號的核心部件。選擇Telephone 控件,單擊鼠標右鍵,選擇MSCommProperties 菜單項,可以更加靈活地控制該控件。
設定事件代碼
在Form1的Init 事件中加入下列代碼:
go top
*設定通訊端口號,可根據你的實際情況設定
*筆者的Modem 是接在Com3上的thisform.telephone .CommPort =3
*設定端口的通訊速率(波特率)、通訊字長以及是否進行校驗
thisform.telephone .Settings =″9600,n ,8,1″
在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
經過上面幾個步驟,大功告成了。戴上耳機,對著話筒。
(四川省新都縣國家稅務局610500)