前提,不能用定时器,这样太耗系统资源.是否存在一些消息机制呢?其实就是智能卡读写器的问题.如何捕捉"划卡"这一动作?(在readerOpen以后)

解决方案 »

  1.   

    如果串口是你的程序打开的,自然用 MSComm 控件可以从串口中读数据,如果是外部的某个程序打开的,那么可能需要在设备层才能检测到串口通信,也就是必须写一个虚拟设备驱动程序,这个VB不太适合。
      

  2.   

    虚拟设备驱动程序??噢,太困难了...我想可能不用的.是这样的,VC编的应用程序.未升级之前(*.bin文件,写硬件IC),放卡去划不会有反应.升级后(写入*.bin后),划卡就能捕捉到了....而且在应用程序中显示出卡的ID号码,这样.....我想大概不是设备层的了....因为升级前后,VC应用程序的代码是没变的.....理论上....VB也应该可以....
    ???
      

  3.   

    刷卡的时候一定有数据发送到PC,你可以用OnComm事件来做
      

  4.   

    OnComm这个我试过....其实很矛盾的,因为驱动程序DLL里的函数已经打开了COM口,只是打开,还没SelectCard.但需要事件驱动。如果用MScomm1.PortOpen=True必出错无疑
      

  5.   

    只提供ReaderOpen.....即打开串口设备,然后事件驱动SelectCard....并没有消息机制
      

  6.   

    换句话吧....当串口不断有信息过来时...如何获得这一中断?而且COM已经被打开了....MsComm的OnComm也没用