⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample11u.pas

📁 用来测试任何pcsc兼容读卡器
💻 PAS
字号:
unit sample11u;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, FormatMemo, APDUCard, GSM1111Card, PCSCclasses;

type
  TForm1 = class(TForm)
    ResourceManager1: TResourceManager;
    card: TGSM1111APDU;
    memo: TFormatMemo;
    procedure ResourceManager1SelectedStateChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  public
   procedure TryGSM(reader:TSmartcardReader);
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.TryGSM(reader:TSmartcardReader);
begin
 reader.WaitForStatusChange(0);
 card.readername:=reader.readername;
 card.Reset;
 if card.Connected then
  if card.Select(id_MF)=errOK then
   if card.Select(id_EF_ICCID)=errOK then
    if card.ReadBinary(0,10)=errOK then
    begin
     memo.AddLine('Ok. Seems to be a /bGSM/b Card.');
     memo.AddLine('Id number:/c008'+BufToBCD(card.answer.data^,card.answer.datalen,0)+'/c000');
     exit;
    end;
 memo.AddLine('/c00FNot a GSM Card!/c000');
end;

procedure TForm1.ResourceManager1SelectedStateChange(Sender: TObject);
var
 i:integer;
begin
 with ResourceManager1 do
 for i:=0 to ChangedReaderCount-1 do
   if ChangedReaderInfo[i].NewReaderState * [rsCardPresent,rsEmpty]<>[] then
   begin
    memo.AddLine('/b/c800'+ChangedReaderName[i]+'/b/c000 : '+ChangedReaderInfo[i].Atr.Hex);
    if rsCardPresent in ChangedReaderInfo[i].ReaderState then
     TryGSM(Readers[ChangedReaderName[i]]);
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 i:integer;
begin
 ResourceManager1.SelectExistingReaders;
 ResourceManager1.WatchSelectedReaders;
 memo.AddLine('Readers found:');
 with ResourceManager1 do
 for i:=0 to SelectedReaderCount-1 do
  memo.AddLine('/b/c800'+SelectedReaderName[i]+'/b/c000');
 memo.AddLine('Watching...');
 ResourceManager1.InvalidateSelectedReadersState;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -