📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
btnsys: TButton;
ListBox1: TListBox;
btnmj: TButton;
btnxf: TButton;
btnadd: TButton;
btnopt: TButton;
btnexit: TButton;
procedure btnexitClick(Sender: TObject);
procedure btnsysClick(Sender: TObject);
procedure btnmjClick(Sender: TObject);
procedure btnxfClick(Sender: TObject);
procedure btnaddClick(Sender: TObject);
procedure btnoptClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
icdev:longint;
st:longint;
snr:longint;
function OpenComm(port:integer):longint;stdcall;
far;external 'dascard.dll' name 'OpenComm';
function CloseComm(icdev:longint):integer;stdcall;
far;external 'dascard.dll' name 'CloseComm';
function Check_Reader(icdev:longint):integer;stdcall;
far;external 'dascard.dll' name 'Check_Reader';
function Init_SysCard(icdev:longint;userpwd:pchar;systype:integer;mjsec:integer;mjcardtype:integer;xfsec:integer;commpwd:pchar):integer;stdcall;
far;external 'dascard.dll' name 'Init_SysCard';
function Init_Pos_UserCard(icdev:longint;serno:integer;cardno:pchar;usertype:integer;waitime:integer;cardserno:pointer):integer;stdcall;
far;external 'dascard.dll' name 'Init_Pos_UserCard';
function Init_Pos_UserCard_N(icdev:longint;serno:integer;cardno:pchar;usertype:integer;value:integer;usecount:integer;waitime:integer;cardserno:pointer):integer;stdcall;
far;external 'dascard.dll' name 'Init_Pos_UserCard_N';
function Init_Pos_OPTCard(icdev:longint;opt_num:integer;waitime:integer;cardserno:pointer):integer;stdcall;
far;external 'dascard.dll' name 'Init_Pos_OPTCard';
function RST_Pos_UserCard(icdev:longint;cardserno:cardinal;waitime:integer):integer;stdcall
far;external 'dascard.dll' name 'RST_Pos_UserCard';
function RST_Pos_OPTCard(icdev:longint;cardserno:cardinal;waitime:integer):integer;stdcall;
far;external 'dascard.dll' name 'RST_Pos_OPTCard';
function WRT_Pos_UserCard(icdev:longint;value:integer;cardserno:cardinal;waitime:integer):integer;stdcall;
far;external 'dascard.dll' name 'WRT_Pos_UserCard';
// function Query_Pos_Card(icdev:longint;cardtype:pointer;opt_num:pointer;serno:pointer;cardno:pchar;car- dserno:pointer;value:pointer;count:pointer;usertype:pointer;waitime:integer):integer;stdcall;
function Query_Pos_Card(icdev:longint;var cardtype:integer;var opt_num:integer;var serno:integer;cardno:pchar;var cardserno:cardinal;var value:integer;var count:integer;var usertype:integer;waitime:integer):integer;stdcall;
far;external 'dascard.dll' name 'Query_Pos_Card';
function Init_Access_UserCard(icdev:longint;serno:longint;cardno:longint;usertype:longint;waitime:longint;cardserno:pointer):longint;stdcall;
far;external 'dascard.dll' name 'Init_Access_UserCard';
function RST_Access_UserCard(icdev:longint;cardserno:cardinal;waitime:integer):longint;stdcall;
far;external 'dascard.dll' name 'RST_Access_UserCard';
function Init_Access_UserCard_UsePassword(icdev:longint;cardserno:cardinal;waitime:integer):integer;stdcall;
far;external 'dascard.dll' name 'Init_Access_UserCard_UsePassword';
function Query_Access_Card(icdev:longint;cardtype:pointer;serno:pointer;cardno:pointer;cardserno:pointer;usertype:pointer;waitime:longint):longint;stdcall;
far;external 'dascard.dll' name 'Query_Access_Card';
implementation
{$R *.DFM}
procedure TForm1.btnexitClick(Sender: TObject);
begin
close();
end;
procedure TForm1.btnsysClick(Sender: TObject);
var
userpwd:pchar;
s:string;
begin
userpwd:='12345678'#0;
setlength(s,20);
listbox1.Clear();
st:=Init_SysCard(icdev,userpwd,2,1,1,2,pchar(s));
case st of
0:listbox1.Items.Add ('初始化系统卡成功:通讯密码:'+s);
-2:listbox1.Items.Add ('初始化系统卡失败:读写器通讯错!');
-5:listbox1.items.Add ('初始化系统卡失败:参数错!');
-6:listbox1.Items.Add ('初始化系统卡失败:不能再初始化系统卡!');
-7:listbox1.Items.add('初始化系统卡失败:找不到卡!');
-8:LISTBOX1.Items.add('初始化系统卡失败:找不到消费授权卡!');
-12:listbox1.Items.add('初始化系统卡失败:读卡错!');
-13:listbox1.Items.add('初始化系统卡失败:写卡错!');
-14:listbox1.items.add('初始化系统卡失败:建立授权文档错!');
-15:listbox1.Items.Add ('初始化系统卡失败:不可识别的卡!');
else
listbox1.Items.add('初始系统卡失败!');
end;
end;
procedure TForm1.btnmjClick(Sender: TObject);
var
serno:longint;
cardno:longint;
usertype:longint;
cardserno:longint;
cardtype:longint;
s:string[14];
begin
// cardtype:=-1;
// cardno:=-1;
// usertype:=-1;
// cardserno:=0;
// cardtype:=-1;
listbox1.Clear();
st:=Init_Access_UserCard(icdev,1,1,1,10,addr(cardserno));
if st=0 then
begin
str(cardserno,s);
listbox1.Items.add('初始化门禁考勤用户卡成功:用户卡卡号:'+s);
end
else
BEGIN
case st of
-2:listbox1.Items.add('初始化门禁考勤用户卡失败:读写器通讯错!');
-4:listbox1.Items.add('初始化门禁考勤用户卡失败:没有门禁系统授权信息!');
-5:listbox1.Items.add('初始化门禁考勤用户卡失败:参数错!');
-7:listbox1.Items.add('初始化门禁考勤用户卡失败:找不到卡!');
-11:listbox1.Items.add('初始化门禁考勤用户卡失败:用户卡错误!');
-12:listbox1.Items.add('初始化门禁考勤用户卡失败:读卡错!');
-13:listbox1.Items.add('初始化门禁考勤用户卡失败:写卡错!');
-15:listbox1.Items.add('初始化门禁考勤用户卡失败:不可识别的卡!');
else
listbox1.Items.add('初始化门禁考勤用户卡失败!');
end
END;
st:=Query_Access_Card(icdev,addr(cardtype),addr(serno),addr(cardno),addr(cardserno),addr(usertype),10);
if st=0 then
begin
listbox1.Items.add('门禁考勤机使用卡查询成功:卡ID号:'+inttostr(cardserno));
end
else
BEGIN
case st of
-2:listbox1.Items.add('门禁考勤机使用卡查询失败:读写器通讯错!');
-4:listbox1.Items.add('门禁考勤机使用卡查询失败:没有门禁系统授权信息!');
-5:listbox1.Items.add('门禁考勤机使用卡查询失败:参数错!');
-7:listbox1.Items.add('门禁考勤机使用卡查询失败:找不到卡!');
-11:listbox1.Items.add('门禁考勤机使用卡查询失败:用户卡错误!');
-12:listbox1.Items.add('门禁考勤机使用卡查询失败:读卡错!');
-13:listbox1.Items.add('门禁考勤机使用卡查询失败:写卡错!');
-15:listbox1.Items.add('门禁考勤机使用卡查询失败:不可识别的卡!');
else
listbox1.Items.add('门禁考勤机使用卡查询失败!');
end
END;
st:=Init_Access_UserCard_UsePassword(icdev,cardserno,10);
if st=0 then
begin
listbox1.Items.add('初始化用户'+inttostr(cardserno)+'密码成功!');
end
else
BEGIN
case st of
-2:listbox1.Items.add('初始化用户密码失败:读写器通讯错!');
-4:listbox1.Items.add('初始化用户密码失败:没有门禁系统授权信息!');
-5:listbox1.Items.add('初始化用户密码失败:参数错!');
-7:listbox1.Items.add('初始化用户密码失败:找不到卡!');
-11:listbox1.Items.add('初始化用户密码失败:用户卡错误!');
-12:listbox1.Items.add('初始化用户密码失败:读卡错!');
-13:listbox1.Items.add('初始化用户密码失败:写卡错!');
-15:listbox1.Items.add('初始化用户密码失败:不可识别的卡!');
else
listbox1.Items.add('初始化用户密码失败!');
end
END;
st:=RST_Access_UserCard(icdev,cardserno,10);
if st=0 then
begin
listbox1.Items.add('回收门禁考勤机用户卡'+inttostr(cardserno)+'成功!');
end
else
BEGIN
case st of
-2:listbox1.Items.add('回收门禁考勤用户卡失败:读写器通讯错!');
-4:listbox1.Items.add('回收门禁考勤用户卡失败:没有门禁系统授权信息!');
-5:listbox1.Items.add('回收门禁考勤用户卡失败:参数错!');
-7:listbox1.Items.add('回收门禁考勤用户卡失败:找不到卡!');
-11:listbox1.Items.add('回收门禁考勤用户卡失败:用户卡错误!');
-12:listbox1.Items.add('回收门禁考勤用户卡失败:读卡错!');
-13:listbox1.Items.add('回收门禁考勤用户卡失败:写卡错!');
-15:listbox1.Items.add('回收门禁考勤用户卡失败:不可识别的卡!');
else
listbox1.Items.add('回收门禁考勤用户卡失败!');
end
END
end;
procedure TForm1.btnxfClick(Sender: TObject);
var
serno:integer;
cardno:string;
usertype:integer;
cardserno:cardinal;
cardtype:integer;
opt_num:integer;
value:integer;
count:integer;
begin
usertype:=0;
serno:=0;
cardserno:=0;
cardtype:=0;
opt_num:=0;
value:=0;
count:=0;
cardno:='0000000001';
listbox1.Clear();
st:=Init_Pos_UserCard(icdev,1,pchar(cardno),1,10,addr(cardserno));
if st=0 then
begin
listbox1.Items.add('初始化消费机用户卡成功:用户卡卡号:'+inttostr(cardserno));
end
else
BEGIN
case st of
-2:listbox1.Items.add('初始化消费机用户卡失败:读写器通讯错!');
-3:listbox1.Items.add('初始化消费机用户卡失败:没有消费系统授权信息!');
-5:listbox1.Items.add('初始化消费机用户卡失败:参数错!');
-7:listbox1.Items.add('初始化消费机用户卡失败:找不到卡!');
-11:listbox1.Items.add('初始化消费机用户卡失败:用户卡错误!');
-12:listbox1.Items.add('初始化消费机用户卡失败:读卡错!');
-13:listbox1.Items.add('初始化消费机用户卡失败:写卡错!');
-15:listbox1.Items.add('初始化消费机用户卡失败:不可识别的卡!');
else
listbox1.Items.add('初始化消费机用户卡失败!');
end
END;
setlength(cardno,12);
st:=Query_Pos_Card(icdev,cardtype,opt_num,serno,pchar(cardno),cardserno,value,count,usertype,100);
if st=0 then
begin
listbox1.Items.add('消费机使用卡查询成功:金额:'+inttostr(value div 100)+' 消费次数:'+inttostr(count)+' 卡ID号:'+inttostr(cardserno));
end
else
BEGIN
case st of
-2:listbox1.Items.add('消费机使用卡查询失败:读写器通讯错!');
-3:listbox1.Items.add('消费机使用卡查询失败:没有消费系统授权信息!');
-5:listbox1.Items.add('消费机使用卡查询失败:参数错!');
-7:listbox1.Items.add('消费机使用卡查询失败:找不到卡!');
-11:listbox1.Items.add('消费机使用卡查询失败:用户卡错误!');
-12:listbox1.Items.add('消费机使用卡查询失败:读卡错!');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -