首页 | 新闻资讯 | 软件应用 | 图形图像 | 网络应用 | 硬件学堂 | 程序开发 | 安全中心 | 素材下载 | 作者专区 | 学院论坛
精选专题 | 精美壁纸 | 专家答疑 | Flash剧场 | Photoshop | 名词解释 | 梦幻桌面 | PS高手进阶 | QQ区 | 图书 | 黑客教材
Flash教程| 卡通制作 | AutoCAD | 3DMax实例 | PS视频教程| 网页制作 | CorelDRAW| Firework | 滤镜与实例 | 全部视频教程
当前位置:eNet硅谷动力 > 学院频道 > VB

编写电话拨号程序时一点小技巧
2006-01-16 09:16 来源:eNet论坛
【简 介】
在MSCOMM控件,输出电话号码后,MODEM如检测到忙音,会返回一个busy字符。
    
加入收藏  设为首页

  在MSCOMM控件,输出电话号码后,MODEM如检测到忙音,会返回一个busy字符。

  问题: 用vb如何通过modem读取电话线上的电话机数字键发出的DTMF信号?以实现BITWARE中用电话机对语音信箱的操作。

  A回答:

  VB中有TERMINAL CONTROL 的控件(主持人注:即MSCOMM32),可以对串行口进行读写,而计算机相对于MODEM,正好是一个DTE与DCE的关系,关于这种关系的细节可以去参考RS232的通信原理,标准MODEM中大概有30个接口寄存器,你对MODEM卡是无法直接访问这些寄存器的,只有通过AT命令,由MODEM来完成一些特定的功能。关于DTMF检测(也就是对方电话号码的检测),则该MODEM芯片必须具有CALLER ID的功能,至于AT命令中是否有检测CALLER ID 功能的命令,需要你去查阅相关的最新资料,因为以前的AT命令不包括这个功能,计算机对MODEM的唯一访问方式就是AT命令。(主持人建议:一般在Modem的手册上会有AT指令集)。

  主持人注:目前的Modem一般都不具备检测DTMF功能,所以一般需要另外购买硬件(如电话语音卡)。

  贺斌的意见:
  可以采用AT#CID=1,如果显示OK,则可以接收来电号码了。

  zhangpk的意见:
  对于你的MODEM是否有CALLER ID功能,可以通过访问注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\Class\Modem\0000\EnableCallerId键,看其中是否有AT指令字符,其中1的值就是CALLER ID的AT指令。

  李俊文的意见:
  不用另外加硬件也可以接收DTMF信号,要用语音AT命令而且MODEM必需是语音FAXMODEM,接收的字符里含有其他字符,但是有规律的可以捕捉按键号码。如果感兴趣请跟我联系(lijw001@public.yj.jl.cn)。

请问如何实现用modem拨号时检查电话是否占线?

回答:

****************
Private Sub Openport()
'初始化Modem
If Not MSComm1.PortOpen Then
MSComm1.CommPort = 3
MSComm1.RThreshold = 1
MSComm1.OutBufferSize = 1024
MSComm1.InBufferSize = 1024
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
End If
End Sub


*******
Private Function Waiting(strings As String, waittime As Integer) As String
'接收Modem的返回信息
Dim Endtime As Long
Dim receivestring As String
Endtime = Timer + waittime
receivestring = ""
errorcode = 0
Do
DoEvents
If MSComm1.InBufferCount Then
receivestring = receivestring + MSComm1.Input
If InStr(1, receivestring, strings) Then
Exit Do
End If
End If
If Timer >= Endtime Or errorcode Then
errorcode = 1
Exit Do
End If
Loop
Waiting = receivestring
End Function

********* '判断本地Modem
Call Openport
MSComm1.Output = "AT" + Chr(13)
mywin = Waiting("OK", 5)
If errorcode Then
'Modem未准备好,电话占线
Endif
*********
'判断对方Modem
MSComm1.Output = "ATDT" + vbdialno + Chr(13)
wait = Waiting("CONNECT", 10)
If errorcode Then
'对方Modem未准备好,占线
Endif

[1] [2]下一页
关键字: VB  MODEM    拨号  电话 
您对这篇文章的看法是:    喜欢 反感 支持 反对 加油 鄙视 学习 打击 佩服 漂亮 路过 发表评论
1.您是否愿意通过eNet在线报名的方式,参加培训机构的培训?
是 
2.通过硅谷动力报名,您希望得到哪些优惠?
学费打折 赠送课时
3.报名后,您更愿意将培训费用:
通过eNet转交培训机构
直接交给培训机构
4.您在选择培训机构时,更注重:
培训机构名气  培训费用
5.您的年龄范围:
15~18岁  19~22岁
23岁以上
视频教程】 【专题汇总】 【不懂就问我关闭窗口

冬季倒计时Photoshop打造满山风雪
五“心”服务 暴风影音智能操作
如此可爱 国粹京剧卡通设计欣赏
完美无瑕 酷狗音乐2008 正式版
解决ADSL频繁掉线故障的八招技巧
焦点文章
 本栏目最新文章
·编写电话拨号程序时一点小技巧
·VB开发应用软件之写在动手之前
·用VB实现“木马”式隐形运行程序
·怎样实现在VB窗体中有Html页面
·用VB编程实现图像的熠熠生辉效果
 精彩回放
·3DSMAX打造书本翻开效果
·共享上网技巧应用四则
·陪酒女浸泡在酒里的青春
·美女的性感靓丽婚纱设计
·妖冶身姿 死或生3壁纸
·剿灭Win XP下的29个烦恼
·黑客必备 NET命令大全
·用PS制作精致绝伦的红酒
 精彩推荐
 今日软件下载
·企业级即时通信平台 腾讯通RTX
·极品时刻表含春运临时列车数据
·下载管理器 BitComet 比特彗星
·边下边看想看就看风行网络电影
·超级图文影音转换器 Konvertor
 往日推荐
·手工破解网吧多种限制
·Windows 网络管理技巧
·WMP 10使用技巧三则
·女孩问你帅不帅 要小心
·注册表优化XP 20招
·制作XP万能ghost光盘
·WMP10火拼DVD播放器
·街头霸王图片集中营
·五大搜索引擎横向评测
·防御计算机病毒十大步骤

论坛精华
·PS初学者十三课,献给 
·photoshop完美扣图教 
·eNet学院史上最优秀 
·史上最强最多 photo 
·国外高手的调色合成 
·终极钢笔教程 
热点推荐
修复灰暗照片
浪漫婚纱照片
Flash视频编程
章子怡月历桌面
热点关注
·.NET下WinForms编程入门
·Photoshop数码照片处理案例
·3DSMAX室内渲染实例视频教程
·ASP.NET经典实例视频教程
·爱淘课PhotoshopCS3视频教程
·JAVA-J2ME移动开发实战教学
·网站重构&web标准设计教程
·瑞星杀毒08套装免费用一年
·瑞星卡卡上网助手 正版免费
Photoshop打造清纯漂亮的美女插画
往日推荐
打造火焰文字
鹏哥C#教程
美女怀旧照片
3D室内渲染
焦点关注