sample8u.pas
来自「用来测试任何pcsc兼容读卡器」· PAS 代码 · 共 91 行
PAS
91 行
unit sample8u;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, APDUCard, PCSCclasses, ComCtrls,VASBase, selectreader2;
type
TForm1 = class(TForm)
edBody: TEdit;
Label1: TLabel;
edAnswer: TEdit;
Label2: TLabel;
MainMenu1: TMainMenu;
Exit1: TMenuItem;
Selectreader1: TMenuItem;
buSend: TButton;
card: TAPDUCard;
ResourceManager1: TResourceManager;
edSize: TEdit;
UpDown1: TUpDown;
Label3: TLabel;
edError: TEdit;
Label4: TLabel;
edSW: TEdit;
edCLA: TEdit;
edIns: TEdit;
edP1: TEdit;
edP2: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
ReaderDialog1: TReaderDialog;
procedure Exit1Click(Sender: TObject);
procedure Selectreader1Click(Sender: TObject);
procedure buSendClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Exit1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Selectreader1Click(Sender: TObject);
begin
if card.SelectReader(ReaderDialog1) then
try
card.Reset;
except
on e:Exception do ShowMessage(e.Message);
end;
caption:='Sample 7 - '+card.ReaderName;
end;
procedure TForm1.buSendClick(Sender: TObject);
begin
with card do
begin
try
command.cla:=strtoint2('$'+edCla.text);
command.ins:=strtoint2('$'+edIns.text);
command.p1:=strtoint2('$'+edP1.text);
command.p2:=strtoint2('$'+edP2.text);
command.BodyHex:=edBody.text;
answer.ForceBufferSize(strtointdef(edSize.text,0));
Transmit;
edanswer.text:=answer.DataHex;
edSw.text:=inttohex(answer.sw,4);
edError.text:='OK';
except
on e:Exception do edError.text:=e.message;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?