读卡机的一个问题 ( 积分: 100 )

  • 主题发起人 主题发起人 square_tian
  • 开始时间 开始时间
S

square_tian

Unregistered / Unconfirmed
GUEST, unregistred user!
在IC卡在读卡机上响应的时候,程序自动就把相应的数据(一个字符串)写入一个EDIT控件中,怎么才能实现阿?????
在IC卡在读卡机上响应时,程序中有什么事件能响应他

请各位高手指点指点!!!
 
在IC卡在读卡机上响应的时候,程序自动就把相应的数据(一个字符串)写入一个EDIT控件中,怎么才能实现阿?????
在IC卡在读卡机上响应时,程序中有什么事件能响应他

请各位高手指点指点!!!
 
我也想知道
 
这都是你自己控制的呀,系统怎么会知道你什么时候读IC卡呢???
但有些ID卡或磁卡的读卡器能自动将数据显示到你的光标所在的地方,但是IC卡的,我好象没碰到过,是需要自己读出数据后再对EDIT赋值的。
 
我现在就是有一个感应器,不过触发事件要按钮才能相应,我现在是想直接的当卡在读卡器上划过就能相应,而不用按钮。用线程可以控制么??
 
读卡机读到卡会向数据口发送数据帧,你的程序应该会有一个接收事件
 
那个数据帧怎么样才能抓到阿,DELPHI里面有这样的控件么??
这个接受事件怎么样写啊 给点提示啊 !!
 
你买读卡器时有相应的读卡驱动说明和调用函数呀,直接调用就可以了。用spcomm,mscomm等控件也可以呀,因为这些控件都是对应串口收发的。
 
找一个叫SPCOMM的第三方控件装上就行了,下面是他的接收事件
用DELPHI里自带的MSCOMM也可以,就是用着稍微麻烦一些。

//串口接收,只有串口接收到数据帧才会触发此事件,可对数据帧进行协议判断和相应的处理
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var i:integer;
rxbuf:array of byte;
s:string;
begin
setlength(rxbuf,bufferlength);
move(buffer^,rxbuf[0],bufferlength);//接收数据装入数组
//ASC显示
s:='';
for i:=0 to bufferlength-1 do s:=s+Char(rxbuf); //接收数据转为字符串形式
Memo2.Lines.Add(s);//显示字符串
END;
 
ic 卡机器都有dll,用一个函数取出数据,没有你说的那种,插上卡电脑里就出数据的.
 
接受答案了.
 
后退
顶部