求MSCOMM控件的用法,是不是需要在硬件上做什么安装?为什么代码都不能用?
我找了很多代码,全都没一个能用的,是不是要在两台计算机上试验才行呢?请高手发个绝对能用的源码,并说明怎么用(一定要说明要怎么用)
我现在只想做到这样
第一种想实现的:在我上网时,如果有人打电话进来,用程序显示他的来电号码,
第二种想实现的:我想通过MSCOMM控件向朋友发送一些信息,像QQ那样进行聊天,能否做到?
最重要的是!!!! 我希望大家能够帮我实现最重要的一步,就是握手,因为握手了之后就好办了,网上有好多代码,我现在就是不知道怎么握手
问题点数:100、回复次数:4Top
1 楼windcandle()回复于 2003-08-03 02:43:32 得分 0
1.不行。
2.还是不行。Top
2 楼GetWindowPos(阿汪)回复于 2003-08-05 10:39:34 得分 50
首要任务是建立两者之间的通讯。因此可分别将监控中心计算机和电源控制器通过RS-232C接口与Modem相连,再通过Modem接入公用电话网(PSTN),由PSTN实现本地Modem与电源端Modem的联接,就可以实现监控中心计算机与电源控制器间的通讯。Top
3 楼GetWindowPos(阿汪)回复于 2003-08-05 10:40:32 得分 50
通过检查InBufferCount 属性值来判定输入缓冲区中是否接收到相应数目的字符或字节。若已接收到相应数目的字符或字节,就可以用Input属性来接收这些字符或字节;否则继续查询InBufferCount属性值,直到满足条件。
下面是用查询方式实现的通讯程序。在下面给出的例子中,我们接收的数据都是48字节的定长二进制数据。为实现该程序,需在窗体上加入一个通讯控件MSComm1,四个命令按钮cmdDial,cmdHangUp,cmdOrder,cmdExit。
窗体文件清单(只给出主要的程序代码)
Dim ret '定义窗体级变量
Dim databuffer() As Byte 'databuffer是存放接收数据的数组
Private Sub Form—Load()
'设置当前通信串口为COM2口
MSComm1.CommPort = 2
'设置串口传输速率为2400bps,数据位8位,无校验,一位停止位
MSComm1.Settings = "2400,n,8,1"
MSComm1.InputMode = 1 '以二进制形式从输入缓冲区中读数据
MSComm1.RThreshold = 0 '接收到数据不引发OnComm事件
MSComm1.InputLen = 0 '一次读出输入缓冲区中的所有数据
MSComm1.PortOpen = True '打开串口
End Sub
Private Sub cmdDial—Click() '拨号联机
Static Num As String
Num = InputBox$("Enter Phone Number:", "Dial Number", Num) '输入电话号码
If Num = "" Then Exit Sub
If Not MSComm1.PortOpen Then
MSComm1.PortOpen = True
If Err Then Exit Sub
End If
MSComm1.Output = "ATDT" & Num & vbCrLf
'ATDT通知调制解调器以音频方式拨号
cmdHangUp.Enabled = True
cmdDial.Enabled = False
MSComm1.InBufferCount = 0
'查询InBufferCount 属性值来确定输入缓冲区中是否接收到调制解调器回送的字符串“10 ”,以证实拨号成功,正确建立联接
Do
DoEvents
Loop Until MSComm1.InBufferCount >=3
End Sub
Sub ReceiveData() '接收数据子程序
Dim temp
MSComm1.InBufferCount = 0 '清空输入缓冲区
'查询InBufferCount 属性值来确定输入缓冲区中是否有接收到48字节的数据
Do
DoEvents
Loop Until MSComm1.BufferCount >= 48
temp = MSComm1.Input
databuffer = temp '将接收到的数据的类型转换为字节数组类型
End Sub
Private Sub cmdHangUp—Click() '数据通讯结束后,执行挂机操作
Dim ret
ret = MSComm1.DTREnable
'当DTR信号发生从高电平到低电平的转换时,调制解调器从传输状态进入命令状态
MSComm1.DTREnable = True
MSComm1.DTREnable = False
MSComm1.DTREnable = ret
MSComm1.Output = "ATH0" 'ATH0是挂机命令
cmdHangUp.Enabled = False
cmdDial.Enabled = True
If Err Then MsgBox Error$, 48
End Sub
Private Sub cmdExit—Click() '单击退出按钮触发的事件过程
Mscomm1.Portopen=False '关闭串口
End
End Sub
Private Sub cmdOrder—Click() '单击查询按钮触发的事件过程
Dim temp
Dim order() As Byte
order = StrConv(Chr(0) + "aa" + Chr(13), vbFromUnicode) '查询命令串
'strconv()函数的功能是将Unicode字符串转换为ASCII码字符串
temp = order
MSComm1.Output = temp
'通过与串口联接的调制解调器向远端电源控制器发送查询命令
ReceiveData '查询接收48字节的数据
End SubTop
4 楼ftp0697(Bismarck(a)人不风流枉少年)回复于 2003-08-05 18:11:08 得分 0
要先打开串口,然后监听串口Top




