基本信息
源码名称:二代身份证delphi源码
源码大小:0.18M
文件格式:.rar
开发语言:Pascal
更新时间:2018-10-22
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
unit Main_U; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,IDCardClass_U, jpeg, OBThread; type TIDCardRead_F = class(TForm) img_Cover: TImage; Image_XP: TImage; ImageMin: TImage; ImageClose: TImage; BtnGlyph_UnRead: TImage; BtnGlyph_Read: TImage; lbl_Info: TLabel; ID_Name: TLabel; ID_Sex: TLabel; ID_Birth: TLabel; ID_Addr: TLabel; ID_Nation: TLabel; ID_Depart: TLabel; ID_Time: TLabel; ID_NewAddr: TLabel; ID_ID: TLabel; obthrd_ReadID: TOBThread; lbl_Con: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure ImageCloseClick(Sender: TObject); procedure obthrd_ReadIDExecute(Sender: TObject; params: Pointer); procedure BtnGlyph_ReadClick(Sender: TObject); procedure BtnGlyph_UnReadClick(Sender: TObject); procedure ImageMinClick(Sender: TObject); procedure img_CoverMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private UsbOrCom: string; Port,pucSn,puiCHMsgLen,puiPHMsgLen: integer; StartReadID,PortEnable: Boolean;//停止阅读身份证 IDCard: TIDCard; procedure ReadIDCard();//读身份证 { Private declarations } public { Public declarations } end; var IDCardRead_F: TIDCardRead_F; implementation uses IDCardDll_U; {$R *.dfm} procedure TIDCardRead_F.FormClose(Sender: TObject; var Action: TCloseAction); begin IDCard.Destroy; StartReadID:= False; if PortEnable then SDT_ClosePort(Port); end; procedure TIDCardRead_F.FormCreate(Sender: TObject); begin IDCard:= TIDCard.Create; PortEnable:= OpenUsbPort(Port); if PortEnable then begin UsbOrCom:= 'U';//连接的类型是通过Usb端口 lbl_Con.Caption:= '连接类型:USB口连接'; lbl_Con.Font.Color:= clGreen; end else begin PortEnable:= OPenComPort(Port); if PortEnable then begin UsbOrCom:= 'C' ; //连接的类型是通过Com端口 lbl_Con.Caption:= '连接类型:串口连接'; lbl_Con.Font.Color:= clGreen; end else begin UsbOrCom:=''; lbl_Con.Caption:= '连接类型:端口错误导致未连接'; lbl_Con.Font.Color:= clRed; end; end; if not PortEnable then BtnGlyph_Read.Enabled:= False; StartReadID:= True; if (StartReadID) and (PortEnable) then BtnGlyph_ReadClick(nil); end; procedure TIDCardRead_F.ImageCloseClick(Sender: TObject); begin Close; end; procedure TIDCardRead_F.ReadIDCard; var iRet : integer; begin while (PortEnable) and (StartReadID) do begin Sleep(1000); iRet:= SDT_StartFindIDCard(Port, pucSn, 1); //查卡 if iRet = 159 then iRet:= SDT_SelectIDCard(Port,pucSn,1) //选卡 else Continue; if iRet= 144 then begin puiCHMsgLen:=0; puiPHMsgLen:=0; iRet:= SDT_ReadBaseMsgToFile(1001, 'wz.txt',puiCHMsgLen, 'zp.wlt',puiPHMsgLen,1); //存储文件 end else Continue; if iRet =144 then begin UsbOrCom:='U';//连接的类型是通过Usb端口 if UsbOrCom ='U' then iRet := GetBmp('zp.wlt',2) else if UsbOrCom='C' then //如果连接的类型是Com端口 iRet := GetBmp('zp.wlt',1); {case iRet of 0: Application.MessageBox('调用sdtapi.dll错误', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -1: Application.MessageBox('相片解码错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -2: Application.MessageBox('wlt文件后缀错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -3: Application.MessageBox('wlt文件打开错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -4: Application.MessageBox('wlt文件格式错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -5: Application.MessageBox('软件未授权!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); -6: Application.MessageBox('设备连接错误!', '身份证通用读卡软件', MB_OK MB_ICONSTOP); end; } if iRet=1 then begin Image_XP.Picture.LoadFromFile('zp.bmp'); IDCard.InitInfo(ExtractFilePath(Application.ExeName) 'wz.txt'); ID_Name.Caption:= IDCard.Name; ID_Sex.Caption:= IDCard.Sex_CName; ID_Nation.Caption:= IDCard.NATION_CName; ID_Birth.Caption:= IDCard.BIRTH; ID_Addr.Caption:= IDCard.ADDRESS; ID_ID.Caption:= IDCard.IDC; ID_Depart.Caption:= IDCard.REGORG; ID_Time.Caption:= IDCard.STARTDATE '-' IDCard.ENDDATE; DeleteFile('zp.bmp'); DeleteFile('wz.txt'); end else Continue; end; end; end; procedure TIDCardRead_F.obthrd_ReadIDExecute(Sender: TObject; params: Pointer); begin ReadIDCard; end; procedure TIDCardRead_F.BtnGlyph_ReadClick(Sender: TObject); begin StartReadID:= True; BtnGlyph_Read.Visible:= False; BtnGlyph_UnRead.Visible:= True; obthrd_ReadID.Execute(nil); end; procedure TIDCardRead_F.BtnGlyph_UnReadClick(Sender: TObject); begin BtnGlyph_Read.Visible:= True; BtnGlyph_UnRead.Visible:= False; StartReadID:= False;; end; procedure TIDCardRead_F.ImageMinClick(Sender: TObject); begin IDCardRead_F.WindowState:= wsMinimized; end; procedure TIDCardRead_F.img_CoverMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ssleft in shift then Releasecapture; perform(WM_SYSCOMMAND,$F012,0); end; end.