unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TypeInitKeyCode=function(idx:Integer):Integer;cdecl;
TypeFreeKeyCode=function(idx:Integer):Integer;cdecl;
TypeGetCodeResult=function(filename:string;outReg:Pointer;idx:Integer):Integer;cdecl;
TypeGetCodeFromURL=function(urstr:string;refurl:string;cookie:string;retcode:Pointer;bsave:Integer;idx:Integer):Integer;cdecl;
TForm1 = class(TForm)
lblInputfile: TLabel;
edtInputfile: TEdit;
lbl1: TLabel;
edtReg: TEdit;
btnTest: TButton;
CheckBox1: TCheckBox;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure btnTestClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
nKeyCodeIndex:Integer;
hMod:Thandle;
InitKeyCode:TypeInitKeyCode;
FreeKeyCode:TypeFreeKeyCode;
GetCodeResult:TypeGetCodeResult;
GetCodeFromURL:TypeGetCodeFromURL;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
nKeyCodeIndex:=-1;
hMod:=LoadLibrary('ZHKeyCode.dll');
if(hMod<>0) then
begin
@InitKeyCode := GetProcAddress(hMod,'www_zfuwen_com_QQ_251578917_InitKeyCode');
@FreeKeyCode := GetProcAddress(hMod, 'www_zfuwen_com_QQ_251578917_FreeKeyCode');
@GetCodeResult := GetProcAddress(hMod, 'www_zfuwen_com_QQ_251578917_GetCode');
@GetCodeFromURL:= GetProcAddress(hMod, 'www_zfuwen_com_QQ_251578917_GetCodeFromURL');
nKeyCodeIndex:=InitKeyCode(0);
if(nKeyCodeIndex>=0) then
begin
//showmessage('初始化成功'+IntToStr(nKeyCodeIndex));
end
else
begin
showmessage('初始化失败'+IntToStr(nKeyCodeIndex));
end;
end
else
begin
showmessage('初始化失败');
end;
end;
procedure TForm1.btnTestClick(Sender: TObject);
var
tick1:TTimeStamp;
tick2:TTimeStamp;
szfilename: WideString;
szstringFile:string;
retstr:Pointer;
startTime:TDateTime;
endTime:TDateTime;
retCount:Integer;
ShowRes: WideString;
cookie:string;
outText:string;
begin
szfilename:=edtInputfile.Text;
startTime:=Now;
szstringFile:=string(szfilename);
szstringFile:=szstringFile;
retstr:=AllocMem(100);
if(CheckBox1.Checked) then
begin
retCount:=GetCodeFromURL(szstringFile,szstringFile,cookie,retstr,1,nKeyCodeIndex);
end
else
begin
retCount:=GetCodeResult(szstringFile,retstr,nKeyCodeIndex);
end;
image1.Picture.LoadFromFile('c:\www_zfuwen_com_Capture_Bitmap.bmp');
endTime:=Now;
tick1:= DateTimeToTimestamp(startTime);
tick2:= DateTimeToTimestamp(endTime);
outText:=string(retstr);
ShowRes:=VarToWideStr(outText);
if(retCount>0) then
begin
edtReg.Text:= ShowRes;//+'时间,'+IntToStr(tick2.Time-tick1.Time)+',当前时间:'+IntToStr(tick2.Time);
end
else
begin
showmessage('识别失败'+IntToStr(retCount));
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if(nKeyCodeIndex>=0) then
begin
FreeKeyCode(nKeyCodeIndex);
nKeyCodeIndex:=-1;
end;
end;
end.
联系客服