readcard.pas
来自「ah 209型通用读卡器驱动程序源码」· PAS 代码 · 共 113 行
PAS
113 行
unit ReadCard;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, CheckLst, ExtCtrls, CardDef, Buttons,SyncObjs;
type
TWindowsModel = (wmSingle, wmMore);
TReadCardForm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
InfoText: TListBox;
SpeedButton1: TSpeedButton;
SkipButton: TSpeedButton;
CancelButton: TSpeedButton;
private
{ Private declarations }
public
{ Public declarations }
end;
function GDCECVersion:PChar;StdCall;
function StartNet(Com :integer) :Boolean;StdCall;
procedure ReadSingle(Handle: HWND;
var CardNo: PChar; var CardType: smallint; var Balance:Real); stdcall;
procedure WriteCardBalance;StdCall;
var
bl : boolean = false;
mCardNo:integer =0;
mCardType:byte =$00;
implementation
uses callcard, ReadingThread_Unit, Unit2;
{$R *.DFM}
procedure ReadSingle(Handle: HWND; var CardNo: PChar;
var CardType: smallint; var Balance:Real);
var
pBuffer : array[0..99] of char ;
status:Integer;
begin
try
//Application.Handle := Handle;
if((mCardNo <> 0) and (mCardType <> $00)) then
begin
OnlyOwner.Acquire;
CardNo:=Pchar(IntTohex(mCardNo,8));
if(mCardType = $11) then
CardType:= 1;
if(mCardType = $22) then
CardType := 2;
Balance:=0;
mCardNo := 0;
mCardType := $00;
OnlyOwner.Release;
end
else
begin
CardNo := PChar('0');
CardType := 0;
Balance := 0;
end;
except
end;
end;
{ TReadCardForm }
procedure WriteCardBalance;
//回写射频卡帐户余额
begin
if bl then
begin
ReadThread.Terminate;
ReadThread.Free;
Net_Exit;
end;
end;
function StartNet(Com :integer) : Boolean;stdcall;
begin
bl := Net_Start(Com,19200);
if(bl) then
begin
Card_No := 0;
Card_Type := $00;
mCardNo := 0;
mCardType := $00;
OnlyOwner := TCriticalSection.Create;
ReadThread := ReadingThread.Create(false);
end;
Result := bl;
end;
function GDCECVersion:PChar;
//用于控制版本信息;
begin
Result:=PChar('1.0'); //为版本号
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?