📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls ;
type
TForm1 = class(TForm)
List: TListBox;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label1: TLabel;
TokenPidEdit: TEdit;
Label2: TLabel;
UserPinEdit: TEdit;
procedure FormCreate(Sender: TObject);
procedure FromClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
hRY2: THandle;
hToken: TPoint;
hET99:THandle;
implementation
uses head; //包含接口和常量的定义
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
str :string;
retcode :integer;
begin
List.Items.Clear();
hRY2:=Loadlibrary('FT_ET99_API.dll');
if hRY2 = 0 then
begin
List.Items.Add('Can not find FT_ET99_API.dll');
exit;
end;
ET_Find := GetProcAddress(hRY2, 'et_FindToken');
ET_Open := GetProcAddress(hRY2, 'et_OpenToken');
ET_Close := GetProcAddress(hRY2, 'et_Close');
ET_Verify := GetProcAddress(hRY2,'et_Verify');
ET_Write := GetProcAddress(hRY2,'et_Write');
ET_Read:= GetProcAddress(hRY2,'et_Read');
end;
procedure TForm1.FromClose(Sender: TObject; var Action: TCloseAction);
begin
Freelibrary(hRY2);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
retcode ,handle:integer;
tokencount,pid,hid:cardinal;
str :string;
pinch:string;
begin
//pid := $ac56e6b9;
retcode := ET_Find(pchar(TokenPidEdit.Text),tokencount);
if (retcode <> 0) then
begin
FmtStr(str,'ERROR: %x;', [retcode]);
List.Items.Add(str);
exit;
end;
if (retcode = 0) then
begin
List.Items.Add('found ET99');
end ;
FmtStr(str,'Find: %x ET99;', [tokencount]);
List.Items.Add(str);
retcode := ET_Open(hET99,pchar(TokenPidEdit.Text),1);
if retcode <> 0 then
begin
FmtStr(str, 'ERROR of ET_Open : %x', [retcode]);
List.Items.Add(str);
exit;
end ;
retcode := ET_Verify(hET99, 0, pchar(UserPinEdit.Text));
if retcode <> 0 then
begin
FmtStr(str, 'ERROR: %x', [retcode]);
List.Items.Add(str);
exit;
end ;
if retcode = 0 then
begin
List.Items.Add('Verify user pin success');
end ;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
retcode ,handle,block_index:integer;
uid,hid:cardinal;
str :string;
begin
retcode := ET_Write(hET99, 0, 8, PChar(str));
if retcode <> 0 then
begin
FmtStr(str, 'ERROR: %x', [retcode]);
List.Items.Add(str);
exit;
end;
List.Items.Add('Write OK');
end;
procedure TForm1.Button4Click(Sender: TObject);
var
retcode ,handle,block_index:integer;
uid,hid:cardinal;
buffer :array [0..512]of pchar;
str:string;
pchars :PChar;
begin
retcode := ET_Read(hET99,0,8,buffer[0]);
if retcode <> 0 then
begin
FmtStr(str, 'ERROR: %x', [retcode]);
List.Items.Add(str);
exit;
end ;
List.Items.Add('Read OK');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -