[VB.NET]电话拨号

电话拨号

实例说明

在本实例中,我们将制作一个辅助型电话程序。程序运行后,输入有效的电话号码,单击"开始拨号"按钮,即可打开Windows所带的电话拨号程序,即可实现拨号。程序运行结果如图94-1所示。

技术要点

l 创建TAPI应用程序

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

l TAPI错误处理

图94-1 运行结果

实现过程

■ 新建项目

打开Visual Studio.NET,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中选择"Windows应用程序",在名称域中输入"AutoDial",然后选择保存路径。单击"确认"。

■ 添加控件

向当前窗体上添加一个Label控件、一个ListBox控件、一个TextBox控件和两个Button按钮。

■ 设置属性

将Label控件和Button按钮的Caption属性设置为跟界面一致,TextBox控件的Text属性置为空。其余属性使用默认值即可。

■ 添加代码

Private Declare Function tapiRequestMakeCall Lib "TAPI32.DLL" (ByVal DestAddress As String, ByVal AppName As String, ByVal CalledParty As String, ByVal Comment As String) As Integer

Const TAPIERR_CONNECTED As Short = 0

Const TAPIERR_DROPPED As Short = -1

Const TAPIERR_NOREQUESTRECIPIENT As Short = -2

Const TAPIERR_REQUESTQUEUEFULL As Short = -3

Const TAPIERR_INVALDESTADDRESS As Short = -4

Const TAPIERR_DESTBUSY As Short = -11

Const TAPIERR_UNKNOWNREQUESTID As Short = -15

Const TAPIERR_REQUESTFAILED As Short = -16

Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click

Dim strPhoneNum As String

Dim res As Integer

If Trim(Text1.Text) = "" Then

List1.Items.Add("错误:没有输入电话号码")

Exit Sub

Else

strPhoneNum = Trim(Text1.Text)

End If

res = tapiRequestMakeCall(strPhoneNum, "Tapi Sample", strPhoneNum, "")

Call TapiStatus(res)

End Sub

Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.Click

Me.Close()

End Sub

Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

EnableDial()

List1.Items.Add("拨号已连接")

End Sub

Private Sub text1_TextChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles text1.TextChanged

EnableDial()

End Sub

Private Sub EnableDial()

Command1.Enabled = Len(Trim(Text1.Text)) > 0

End Sub

Sub TapiStatus(ByRef strres As Integer)

Select Case strres

Case TAPIERR_CONNECTED

List1.Items.Add("拨号已连接")

Case TAPIERR_INVALDESTADDRESS

List1.Items.Add("错误的目的地址")

Case TAPIERR_NOREQUESTRECIPIENT

List1.Items.Add("没有电话接口程序运行")

Case TAPIERR_REQUESTFAILED

List1.Items.Add("拨号请求由于未知原因失败")

Case TAPIERR_DESTBUSY

List1.Items.Add("对方电话正忙")

Case TAPIERR_UNKNOWNREQUESTID

List1.Items.Add("没有这个电话号码")

Case TAPIERR_DROPPED

List1.Items.Add("对方已挂断")

End Select

End Sub

■ 运行程序

单击菜单"调试|启动"或单击 图标运行程序。

小结

TAPI有两种类型:完全型和辅助型。完全型只需要TAPI库,直接操作底层TAPI函数来建立及管理TAPI会话。而辅助型则要求别的部件和程序(如Window系统电话拨号程序),这类应用程序编程比较简单,无需进行很多的编程工作。在我们的实例中使用的是辅助性TAPI,单击"开始拨号"后,出现如图94-2所示的图形。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值