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

📄 main.pas

📁 delphi api
💻 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 + -