?? vfp實現電話撥號.txt
字號:
Visual FoxPro中實現電話撥號
對于有調制解調器的用戶來說,大多使用過Windows 95提供的‘電話撥號程序’,使用起來也確實非常的方便。但是,如何在我們的Visual FoxPro 5.0應用程序中進行電話撥號呢?還好微軟為我們提供了一個非常有用的控件--‘Microsoft Communication Control’,使用它,我們可以迅速的制作出一個通用的電話撥號程序。以下是本程序的編寫方法:
進入Visual FoxPro 5.0中,建立一個新的表單(Form1)。設置表單的Caption屬性為‘電話撥號程序’,Windowtype屬性為1-模式。
建立‘Microsoft Communication Control’控件(Olecontrol1)。在‘表單控件’工具條上選擇‘查看類’,在下拉菜單中選擇‘ActiveX控件’,然后在‘表單控件’上選擇‘Microsoft Communication Control’(若無此控件可查看系統菜單的‘工具’的‘選項’中的‘控件’選項卡),在表單上點擊一下即可。
建立兩個按鈕。在‘表單控件’工具條上選擇‘命令按鈕’并在表單體上點擊一下即可生成一個命令按鈕(Command1),設置它的Caption屬性為‘撥號’。依此方法再制作出‘退出’按鈕(Command2)。
建立文本輸入框。在‘表單控件’工具條上選擇‘文本框’并在表單體上點擊一下即可生成一個文本輸入框(Text1),設置它的InputMask屬性為‘9999999999999999’。
建立兩個標簽。在‘表單控件’工具條上選擇‘標簽’并在表單體上點擊一下即可生成一個標簽(Label1),設置它的Caption屬性為‘電話號碼:’,Autosize屬性為 .T.。同樣方法制作Label2,設置它的Caption屬性為‘聯接中……’,Autosize屬性為.T.,Fontbold屬性為.T.,Fontsize屬性為22,Forecolor屬性為藍色(RGB(0,0,255)),Visible屬性為.F.。
編寫相應控件的執行過程。在系統菜單的‘表單’中選擇‘新方法程序’,在名稱欄中輸入“Dial”,按‘關閉’按鈕退出。以下是程序代碼:
Form1的Dial過程:
Parameter Number
DialString = "ATDT" + Number + ";" + Chr(13)
* 設置通訊端口號
Thisform.Olecontrol1.CommPort = 2
* 設置波特率,奇偶校驗,數據位和停止位參數
Thisform.Olecontrol1.Settings = "9600,N,8,1"
Err = 0
On Error Err = Messagebox("無法打開通訊端口,請重新設置!",0
+ 16,"錯誤信息")
* 打開通訊端口
Thisform.Olecontrol1.PortOpen = .T.
If Err = 1
Return
Endif
On Error
Thisform.Olecontrol1.InBufferCount = 0
Thisform.Olecontrol1.Output = DialString
FromModem = ""
StartTime = DATETIME()
Do While .T.
* 檢測聯接是否超時
If DATETIME() - StartTime >= 10
= MessageBox("不能進行聯接,請檢查設置是否正確!",
0 + 64,"提示信息")
Thisform.Mousepointer = 0
Thisform.Label2.Visible = .F.
Exit
Endif
Thisform.Mousepointer = 11
Thisform.Label2.Visible = .t.
If Thisform.Olecontrol1.InBufferCount > 0 Then
FromModem = FromModem + Thisform.Olecontrol1.Input
If at("OK",FromModem) > 0 Then
= MessageBox ("請先拿起話筒然后再按下‘確認’按
鈕!",0 + 64,"提示信息")
Thisform.Mousepointer = 0
Thisform.Label2.Visible = .F.
Exit
EndIf
EndIf
Enddo
* 斷開聯接
Thisform.Olecontrol1.Output = "ATH" + Chr(13)
* 關閉通訊端口
Thisform.Olecontrol1.PortOpen = .F.
Form1的Activate過程:
Set Escape Off
Thisform.Olecontrol1.InputLen = 0
Command1的Click過程:
If Empty(Thisform.Text1.Value)
= Messagebox("電話號碼不可為空!",0 + 16,"提示信息")
Return
Endif
Thisform.Dial(Alltrim(Thisform.Text1.Value))
Command2的Click過程:
Thisform.Release
以上程序默認調制解調器使用的是Com2通訊口,可根據實際情況進行調整。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -