怎样实现串口主动触发一个事件?比如,象银行里刷卡那样,不用时时去读串口;而是当读卡器上有卡后主动触发一个读卡事件。我不知道是不是这样的,请你们给我一个具体的方法吧,拜托!

解决方案 »

  1.   

    串口技术现在比较成熟了,有很多方法。比较方便简单是用微软的通用组件MSCOMM,在VS Studio中,
    还有win sdkAPI的CreateFile,具体请查MSDN。
      

  2.   

    to:l_xiaofeng(≈流水≈不腐≈) 
      我现在就是不想用程序去被动地控制串口读写,我想用串口主动地去控制读卡事件。也就是说当卡放在读写器上时就触发一个事件完成所有地读卡操作。  高手们请说具体点嘛,我可是菜鸟刚刚学的。拜托啦!
      

  3.   

    做个记号 to:siyuan_qian(心蓝) 
    借你的帖子学习了。
      

  4.   

    那样子我也会做呀,问题就是要特殊点了。我的意思是有没有什么方法使系统自动检测串口情况,当一旦有则根据系统信息触发指定的事件。实在没有什么办法那就只有算了,问你们一个别的问题:
    var keychar:string;
    begin
    for  i:=1  to leng(temp) do
    begin
     application.ProcessMessages;
      keychar:=temp[i];
      if(keychar='0')then keybd_event(48,0,0,0) ;
      if(keychar='1')then keybd_event(49,0,0,0) ;
      if(keychar='2')then keybd_event(50,0,0,0) ;
      if(keychar='3')then keybd_event(51,0,0,0) ;
      if(keychar='4')then keybd_event(52,0,0,0);
      if(keychar='5')then keybd_event(53,0,0,0);
      if(keychar='6')then keybd_event(54,0,0,0) ;
      if(keychar='7')then keybd_event(55,0,0,0) ;
      if(keychar='8')then keybd_event(56,0,0,0) ;
      if(keychar='9')then keybd_event(57,0,0,0) ;
    end;
    为什么当有两个相邻的数据相同时只能输出一个?比如说:1222345667就只能输出位:1234567