自己编写程序控制Modem拨号。

解决方案 »

  1.   

    To: Jneu(沧海桑田)
       我主要不是想控控制Modem.
       我是在想,假如用Mscomm控件读取Com口数据(只是读取不用写),当然Com口已经打开,并且里面有数据。而我又不能用Mscomm来打开读取,那该怎样读取呢?这个问题已经困恼了我很久了?希望高手指点指点!
      

  2.   

    不太了解你们的情况,但我想一段功能完成就可以关闭Mscomm它了,用在开可以保证没冲突的.读通讯信号有先后的问题.我做一些通讯程序都是这么完成的,没出现共占的问题.你们想想程序上是不是有欠妥的地方.
      

  3.   

    To: mazhayang()
       我是想直接读取地址里的数据呀
    To: metin()
       关闭Mscomm后,缓冲区里的数据还会在吗?
      

  4.   

    To: metin()
       还有,那些刷卡机是不是刷一次卡时先打开Com口,刷完后再关闭它。
    那数据就留在缓冲区里,我们就可以用Msomm打开Com口,读取其中的数据,是这样子吗?
      

  5.   

    看你们好象不了解Msomm
    to sunshinecom21(用VB):当然不在了,有网卡进行暂时存储就没问题了吧.还有别的方法 .
    还有,刷卡机当然不关闭COM了,那样不累死它呀!我是这样做的定义一个通讯协议(不知道你们了解吗?通讯协议就是定义硬件和软件的接口动作的)
    说明白点儿吧,如我定义AH开头的BH结尾的串,我认为是卡号.
      

  6.   

    接上楼,其实这个和硬件有一定的关系,你们想知道的更详细的话,给我MAIL(要对硬件有一定的了解哦)
      

  7.   

    To: metin(风浪)
        谢谢你的热情参与!
        我想知道更详细的知识,因为我真的很想知道如何用Mscomm读取刷卡数据,那个"通讯协议"该如何写。
        我想"定义AH开头的BH结尾的串,认为是卡号" 的前提,还是要先读取它的数据吧?
    E_mail : [email protected]
    你的E_mail呢?,在线等待...
      

  8.   

    To: metin()
        你还在吗?
      

  9.   

    给你说说如何终止Mscomm(是程序终止而非关闭).它时时刻刻是开着的(不管你刷几张卡),除非退出程序.
    Private Sub MSComm1_OnComm()
      Dim strIn
      Dim a, i, j As Integer
      Dim TempNumber(10) As String
      Dim CardLen As Integer
      
      '如果不是返回 值事件退出
      If MSComm1.CommEvent <> 2 Then
          Exit Sub
      End If
      
      strIn = MSComm1.Input
      i = UBound(strIn)
      
      Select Case MSComm1.CommEvent
        Case comEvReceive
          For j = 1 To i
            If strIn(a) = "HD" Then
              CardLen = 0
              Exit For
            End If
            TempNumber(CardLen) = Hex(strIn(a))
            SBar.Panels(2).Text = SBar.Panels(2).Text & Hex(strIn(a)) & " "
            CardLen = CardLen + 1
          Next j
          
          '处理划卡
          
        Case comEvSend
        ...
        Case comEvRing
        ...
      End Select
    End Sub我的是[email protected]
      

  10.   

    对了263.net收费了,我很穷不用了,改用[email protected]
      

  11.   

    谢谢各位的帮忙,特别是metin(风浪),我刚有点事走开了,分是一定会给的。
       To: dreameasy(自由哥哥) 你那份可以给我参考吗?
      

  12.   

    谢谢各位的帮忙,特别是Metin(风浪),我刚有点事走开了,分是一定会给的。
    To: dreameasy(自由哥哥)    你那份可以给我学习吗?
      

  13.   

    banweihui(KBoy) 
    当然有了,不过有些为难!其实通讯程序设计和你用什么卡机没有太大的关系.(磁卡,射频卡,光电卡,指纹卡,等等)它们都有自己通讯模式.你想做的"自动和手动的刷卡待机模式"不知道自动是什么意思对于读卡命令发出并且刷卡后返回的数值是什么格式的?应该是2进制机器码吧,不太清楚.用Hex(strIn(a))以后为16进制数据.你在转换10进制应该不是问题了.
      

  14.   

    To: metin(风浪)
        再次感谢你!
        我的问题还是没有解决!
        我目前只有Modem,我想在一个程序里用Mscomm打开它并拨号。而我又想在另个一个程序里读取所拨的数据(当然在一个程序里是可以实现)?有办法吗?
    上午在线...
      

  15.   

    给你个最简单的方法.你在拨号端做一个过程(此过程完成读取所拨的数据用变量记录数据)然后在传给客户端程序(另一个程序)用WINSOCK就可以了.
      

  16.   

    用WINSOCK通过TCP/IP传数据应该没问题吧.我上午在线帮你
      

  17.   

    metin(风浪)在这方面很有见地,应该加分噢, 呵呵
      

  18.   

    To: 风浪
        你的方法应该可以,说白了我还是想用Mscomm
        顺便问一下,要产生
    Private Sub MSComm1_OnComm()
    End Sub
        事件的前提,是不是一定要在本程序里Mscomm1打指定端口,就是用Mscomm2打开都没用? 如果是这样子的话,在另一个程序里用Mscomm读取Modem的数据就难办了?
      

  19.   

    哎~~~~,如果你真的认为2个程序可以同时对COM操作的话我也没办法帮你了(不要钻牛角尖)程序,程序,何谓程序.打到目的的方法.对Private Sub MSComm1_OnComm()操作的前提是对它初始化.打开指定的端口,程序完成可以关闭,在开新的端口.