详细代码如下:(如有疑问可13826029618进行相关提问、也可荣士电子查询)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,declaredll,strutils;
type
TForm1 = class(TForm)
Button1: TButton;
Button4: TButton;
Button5: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button2: TButton;
Edit1: TEdit;
Label5: TLabel;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
port,baud:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
//轻松读卡
{
技术支持:
网站:
}
var
status:byte;//存放返回值
mypiccserial:array[0..4] of byte;//卡序列号
cardnumber:Longword;//Longword为无符号32bit的整型
begin
status := idr_read(@mypiccserial);
//在下面设定断点,然后查看mypiccserial、mypiccdata,
//调用完 piccreadex函数可读出卡序列号到 mypiccserial,读出卡数据到mypiccdata,
//开发人员根据自己的需要处理mypiccserial、mypiccdata 中的数据了。
//处理返回函数
case status of
0:
begin
//卡号转换
//1、ID卡的10位十进制号码
cardnumber:= mypiccserial[1]*256*256*256+mypiccserial[2]*256*256+mypiccserial[3]*256+mypiccserial[4];
Edit1.Text := RightStr('0000000000'+IntToStr(cardnumber),10);
Edit2.Text := RightStr('000'+IntToStr(mypiccserial[2]),3) + ',' + RightStr('00000'+IntToStr(mypiccserial[3] * 256+ mypiccserial[4]),5);
ShowMessage('操作成功');
end;
8: ShowMessage('请将卡放在感应区');
23: ShowMessage('机器没连上,或驱动程序未安装!');
else ;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
devno:array[0..3] of byte;//设备编号
begin
if pcdgetdevicenumber(@devno) = 0 then
begin
ShowMessage(IntToHex(devno[0],2) + '-' + IntToHex(devno[1],2) + '-' + IntToHex(devno[2],2) + '-' + IntToHex(devno[3],2));
end;
end;
procedure TForm1.Button4Click(Sender: TObject);//让设备发出声音
{
技术支持:
网站:
}
begin
idr_beep(50);
end;
procedure TForm1.Button2Click(Sender: TObject);
//轻松读卡
{
技术支持:
网站:
}
var
status:byte;//存放返回值
mypiccserial:array[0..4] of byte;//卡序列号
cardnumber:Longword;//Longword为无符号32bit的整型
begin
status := idr_read_once(@mypiccserial);
//在下面设定断点,然后查看mypiccserial、mypiccdata,
//调用完 piccreadex函数可读出卡序列号到 mypiccserial,读出卡数据到mypiccdata,
//开发人员根据自己的需要处理mypiccserial、mypiccdata 中的数据了。
//处理返回函数
case status of
0:
begin
cardnumber:= mypiccserial[1]*256*256*256+mypiccserial[2]*256*256+mypiccserial[3]*256+mypiccserial[4];
Edit1.Text := RightStr('0000000000'+IntToStr(cardnumber),10);
Edit2.Text := RightStr('000'+IntToStr(mypiccserial[2]),3) + ',' + RightStr('00000'+IntToStr(mypiccserial[3] * 256+ mypiccserial[4]),5);
ShowMessage('操作成功');
end;
8: ShowMessage('请将卡放在感应区');
23: ShowMessage('机器没连上,或驱动程序未安装!');
end;
end;
end.