不知为何就是不能获得来电号码。
代码如下:
Public COMBUF As String
Public Sub InitModem()
'初始化Modem链接
With MSComm1
.InBufferSize = 1024
.InputLen = 0
.InputMode = 0
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,N,8,1"
.SThreshold = 0
End With
'打开调制解调器端口
If MSComm1.PortOpen Then MSComm1.PortOpen = False
MSComm1.CommPort = COMX
If Not MSComm1.PortOpen Then MSComm1.PortOpen = True
'打开来电显示功能
MSComm1.Output = "AT#VCID=1" + Chr(13)
'检查Modem命令是否完成
If CHK_MODEM() = False Then
SetStatus "打开来电显示功能失败!!"
End If
MSComm1.Output = "ATS0=0" + vbCr
end sub
Public Function CHK_MODEM() As Boolean
'检测Modem命令是否执行成功
Dim T As Single
Dim L As Integer
T = Timer
Do
COMBUF = COMBUF + MSComm1.Input
L = InStr(1, COMBUF, "OK")
Loop Until L <> 0 Or Timer - T > 2
If L = 0 Then
CHK_MODEM = False
Else
CHK_MODEM = True
End If
End Function
20 个解决方案
#1
With MSComm1
.InBufferSize = 1024
.InputLen = 0
.InputMode = 0
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,N,8,1"
.SThreshold = 1
End With
.InBufferSize = 1024
.InputLen = 0
.InputMode = 0
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,N,8,1"
.SThreshold = 1
End With
#2
to tztz520(午夜逛街) :
没有用
没有用
#3
MSComm1.Output = "AT#VCID=1" + Chr(13)
'检查Modem命令是否完成
'你在这里用sleep延迟一下试下
If CHK_MODEM() = False Then
SetStatus "打开来电显示功能失败!!"
End If
'检查Modem命令是否完成
'你在这里用sleep延迟一下试下
If CHK_MODEM() = False Then
SetStatus "打开来电显示功能失败!!"
End If
#4
打开来电显示功能已经成功,不是AT#VCID=1命令,而是at+vcid=1
打开来电显示功能虽成功,但是还是不能获取来电号码.
每次响铃只获得一个RING串
急啊,谁帮帮我
打开来电显示功能虽成功,但是还是不能获取来电号码.
每次响铃只获得一个RING串
急啊,谁帮帮我
#5
up
#6
up
#7
up
#8
up
#9
关注,帮你顶!
#10
up
#11
up
#12
up
#13
在电信开通这个功能没有?-_-||
#14
up
#15
我也正研究这个问题.
你可以给MODEM个AT指令AT#CID=1如果显示OK就证明你的MODEM是支持来电显示的.
如果没有显示,那就不支持.
换MODEM或是寻找别的方法
你可以给MODEM个AT指令AT#CID=1如果显示OK就证明你的MODEM是支持来电显示的.
如果没有显示,那就不支持.
换MODEM或是寻找别的方法
#16
用MSComm控件实现来电显示
http://dev.csdn.net/article/13/13838.shtm
http://dev.csdn.net/article/13/13838.shtm
#17
先用超级终端检测你的MODEM,是否具有来电显示功能
如何用AT命令查询MODEM是否有来电显示并打开其功能
1,打开超级终端,随便输入一个连接名称。
2,按确定后,在下个窗口中,看到你的猫,不输电话号码点击确定,然后在出现的窗口中按取消。
3:这时将进入超级终端的界面。
输入:AT回车
如果出现OK,说明MODEM支持AT指令。
然后输入下面的命令进行测试你的MODEM是否支持来电显示:
AT#CIDn或者AT+VCIDn
(如果输入AT#CIDn提示错误就用AT+VCIDn来测试,我的T40就只支持AT+VCID命令。n需替换成以下各项). n为以下项时功能分别如后所示:
n 功能
0 关闭呼叫者身份鉴定
1 打开DTE格式化形式的呼叫者身份鉴定
2 打开DTE非格式化形式的呼叫者身份鉴定
? 从调制解调器中恢复当前呼叫者身份鉴定方式
=? 返回调制解调器允许模式的列表,表中各部分间用逗号隔开
比如:
1:查询当前MODEM是否支持来电显示功能,输入:
AT#CID=?
如果显示为:
0
就表示不支持;若显示为:
0,1,2
就表示支持所有来电格式。如果显示
ERROM
说明当前MODEM不支持这种格式的命令,可输入另外一条命令(以下也一样)
AT+VCID=?来查询。
2:查询MODEM当前是否打开来电显示功能。输入:
AT#CID?
如果显示为:
0
则表示没有打开这个功能,如果显示为:
1
则表明已打开来电显示功能了。
3:打开MODEM的来电显示功能,输入:
AT#CID=1
如显示OK就表示已经成功打开来电显示了,这时可用手机打电话进来,超级终端上应有如下格式显示:
RING
DATE = 1110
TIME = 0923
NMBR = 13096090000
#18
或者通过MODEM诊断是否支持,AT命令
我以前也遇到过和你一样的问题,换了MODEM后就解决了
我以前也遇到过和你一样的问题,换了MODEM后就解决了
#19
更换modem解决问题
#20
#21
#1
With MSComm1
.InBufferSize = 1024
.InputLen = 0
.InputMode = 0
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,N,8,1"
.SThreshold = 1
End With
.InBufferSize = 1024
.InputLen = 0
.InputMode = 0
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,N,8,1"
.SThreshold = 1
End With
#2
to tztz520(午夜逛街) :
没有用
没有用
#3
MSComm1.Output = "AT#VCID=1" + Chr(13)
'检查Modem命令是否完成
'你在这里用sleep延迟一下试下
If CHK_MODEM() = False Then
SetStatus "打开来电显示功能失败!!"
End If
'检查Modem命令是否完成
'你在这里用sleep延迟一下试下
If CHK_MODEM() = False Then
SetStatus "打开来电显示功能失败!!"
End If
#4
打开来电显示功能已经成功,不是AT#VCID=1命令,而是at+vcid=1
打开来电显示功能虽成功,但是还是不能获取来电号码.
每次响铃只获得一个RING串
急啊,谁帮帮我
打开来电显示功能虽成功,但是还是不能获取来电号码.
每次响铃只获得一个RING串
急啊,谁帮帮我
#5
up
#6
up
#7
up
#8
up
#9
关注,帮你顶!
#10
up
#11
up
#12
up
#13
在电信开通这个功能没有?-_-||
#14
up
#15
我也正研究这个问题.
你可以给MODEM个AT指令AT#CID=1如果显示OK就证明你的MODEM是支持来电显示的.
如果没有显示,那就不支持.
换MODEM或是寻找别的方法
你可以给MODEM个AT指令AT#CID=1如果显示OK就证明你的MODEM是支持来电显示的.
如果没有显示,那就不支持.
换MODEM或是寻找别的方法
#16
用MSComm控件实现来电显示
http://dev.csdn.net/article/13/13838.shtm
http://dev.csdn.net/article/13/13838.shtm
#17
先用超级终端检测你的MODEM,是否具有来电显示功能
如何用AT命令查询MODEM是否有来电显示并打开其功能
1,打开超级终端,随便输入一个连接名称。
2,按确定后,在下个窗口中,看到你的猫,不输电话号码点击确定,然后在出现的窗口中按取消。
3:这时将进入超级终端的界面。
输入:AT回车
如果出现OK,说明MODEM支持AT指令。
然后输入下面的命令进行测试你的MODEM是否支持来电显示:
AT#CIDn或者AT+VCIDn
(如果输入AT#CIDn提示错误就用AT+VCIDn来测试,我的T40就只支持AT+VCID命令。n需替换成以下各项). n为以下项时功能分别如后所示:
n 功能
0 关闭呼叫者身份鉴定
1 打开DTE格式化形式的呼叫者身份鉴定
2 打开DTE非格式化形式的呼叫者身份鉴定
? 从调制解调器中恢复当前呼叫者身份鉴定方式
=? 返回调制解调器允许模式的列表,表中各部分间用逗号隔开
比如:
1:查询当前MODEM是否支持来电显示功能,输入:
AT#CID=?
如果显示为:
0
就表示不支持;若显示为:
0,1,2
就表示支持所有来电格式。如果显示
ERROM
说明当前MODEM不支持这种格式的命令,可输入另外一条命令(以下也一样)
AT+VCID=?来查询。
2:查询MODEM当前是否打开来电显示功能。输入:
AT#CID?
如果显示为:
0
则表示没有打开这个功能,如果显示为:
1
则表明已打开来电显示功能了。
3:打开MODEM的来电显示功能,输入:
AT#CID=1
如显示OK就表示已经成功打开来电显示了,这时可用手机打电话进来,超级终端上应有如下格式显示:
RING
DATE = 1110
TIME = 0923
NMBR = 13096090000
#18
或者通过MODEM诊断是否支持,AT命令
我以前也遇到过和你一样的问题,换了MODEM后就解决了
我以前也遇到过和你一样的问题,换了MODEM后就解决了
#19
更换modem解决问题