private void axZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { if (FMatchType == 1) { bool RegChanged = false; string sTemp = axZKFPEngX1.GetTemplateAsString(); string sVerTemplate; sVerTemplate = sRegTemplate10; if (axZKFPEngX1.VerFingerFromStr(ref sVerTemplate, sTemp, false, ref RegChanged)) { TxtHuella.Text = "Verify Succeed"; } else { TxtHuella.Text = "Verify Failed"; } } else if (FMatchType == 2) { int score = 8; int processedNum = 1; int ID = axZKFPEngX1.IdentificationInFPCacheDB(fpcHandle, e.aTemplate, ref score, ref processedNum); if (ID == -1) { TxtHuella.Text = "Identify Failed"; } else { TxtHuella.Text = string.Format("Identify Succeed ID = {0} Score = {1} Processed Number = {2}", ID, score, processedNum); } } }
private void ZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { string stmp = ""; string Template = ZKFPEngX1.GetTemplateAsString(); bool ddd = false; if (_FingerPrintImage == null) { MessageBox.Show("El trabajador no tiene registrado su huella digital", "!INFORMACIÓN!", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } stmp = System.Convert.ToBase64String(_FingerPrintImage); if (ZKFPEngX1.VerFingerFromStr(ref Template, stmp, false, ref ddd)) { ShowHintImage(3); MessageBox.Show("Huella dáctilar correcta", "!INFORMACIÓN!", MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.OK; } else { ShowHintImage(3); MessageBox.Show("Huella dáctilar incorrecta. Vuelva a intentar", "!ERROR DE VALIDACIÓN!", MessageBoxButtons.OK, MessageBoxIcon.Error); pbFingerPrint.Image = null; //this.DialogResult = DialogResult.Cancel; } }
public void zkFinger_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { string sTemp = zkFinger.GetTemplateAsString(); string sVerTemplate; string sql = "select finger from sys_user where usercode='{0}'"; sql = string.Format(sql, userCode); csSql.ExecuteScalar(sql, Config.Soft.ConnString, out sVerTemplate); bool regChanged = false; if (zkFinger.VerFingerFromStr(ref sVerTemplate, sTemp, false, ref regChanged)) { tbStatus.Text = "验证通过"; } else { tbStatus.Text = "验证未通过"; } }
void AxZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { try { List <BioKeyInfo> BioKeyInfos = new List <BioKeyInfo>(); BioKeyInfos = CaijiKeyHelper.GetTemplates(this.UserCode); if (BioKeyInfos != null) { foreach (BioKeyInfo BioKeyInfo in BioKeyInfos) { bool b = false; Object obj = BioKeyInfo.Template; if (!IsEnd) { if (AxZKFPEngX1.VerFinger(ref obj, e.aTemplate, false, ref b)) { IsEnd = true; this.label1.Text = ""; this.richTextBox1.SelectedText += "指纹对比通过" + "\r\n"; this.richTextBox1.SelectedText += "当前监理见证人为:" + BioKeyInfo.RegisterName; MessageBox.Show("指纹对比通过,当前监理见证人为:" + BioKeyInfo.RegisterName); this.Name = BioKeyInfo.RegisterName; this.DialogResult = DialogResult.OK; break; } } } if (!IsEnd) { this.richTextBox1.SelectedText += "指纹对比不通过,请重新输入指纹!" + "\r\n"; } } else { this.richTextBox1.SelectedText += "读取服务器指纹记录失败,请重新输入指纹!" + "\r\n"; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
static void ZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { int ID = 0, i; int Score = 0; //e.aTemplate为object类型数据,将其分离并转化为整型 Array _ObjectArray = (Array)e.aTemplate; ID = Convert.ToInt32(_ObjectArray.GetValue(0)); Score = Convert.ToInt32(_ObjectArray.GetValue(1)); if (ID == -1) { Program.frmIdentify.change_control_state(1, null); //lblresult.Text = "Fingerprint Auto Identify Failed!"; } else { //lblresult.Text = "Fingerprint Auto identification success!"; Program.frmIdentify.change_control_state(0, ID); } }
private void axZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { if (m_member.CI_Password != null && m_member.CI_Password != "") { bool RegChanged = false; string tmp = axZKFPEngX1.GetTemplateAsString(); object obj1 = null; bool rt = axZKFPEngX1.DecodeTemplate(m_member.CI_Password, ref obj1); object obj2 = null; rt = axZKFPEngX1.DecodeTemplate(tmp, ref obj2); rt = axZKFPEngX1.VerFinger(ref obj1, obj2, false, ref RegChanged); axZKFPEngX1.EndEngine(); m_verified_finger = rt; this.DialogResult = DialogResult.OK; } }
private void axZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { if (e.actionResult == true) { int[] matchInfo = e.aTemplate as int[]; if (matchInfo[0] >= 0) { Visitor v = _visitList[matchInfo[0]]; VisitLog log = _logService.GetTodayLogNotLeaveOfVisitor(v.Id); if (log == null) { // 添加访问记录 VisitorFrm regForm = new VisitorFrm(v); regForm.OnFormClose += refreshData; regForm.ShowDialog(this); } else { // 添加离开记录 leaveVisitor(log); } } else { if (MessageBox.Show("您好,未找到匹配的访客信息,您要登记新访客吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { switchToRegister(); } } } else { MessageBox.Show("您好,没有获取到完整的指纹信息,请重新录入指纹!", "提示"); } }
//指纹比对OnCapture事件 private void axZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { string fileName = ""; axZKFPEngX1.CancelCapture();//关闭取验证指纹状态 if (!e.actionResult) { MessageBox.Show("取验证模板失败!"); return; } EnrollNum++; fileName = "FingerPic" + EnrollNum + ".JPG"; axZKFPEngX1.SaveJPG(fileName); //保存指纹图像 pictureBox1.Image = Image.FromFile(fileName); //显示指纹 string mb = axZKFPEngX1.GetTemplateAsString(); //得到字符串格式的特征模板 bool flag = false; bool chang = false; for (int k = 0; k < dataGridView1.RowCount - 1; k++) { string fingerFile = dataGridView1.Rows[k].Cells["指纹"].Value.ToString(); if (axZKFPEngX1.VerFingerFromStr(ref fingerFile, mb, false, ref chang)) { MessageBox.Show("比对成功!"); //插入开启门禁 OpenDoor(); flag = true; break; } } if (!flag) { MessageBox.Show("比对失败!"); } }
// Eventos para la huella digital (en este ejemplo, sólo 1: N coincidente: el espacio de caché con la información de huellas dactilares de identificación de huellas digitales para comparación) private void ZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { int ID, i; int Score = new int(); int ProcessNum = new int(); ShowHintInfo("Adquiriendo fingerprint plantilla:"); if (FMatchType == 1) // 1:1 { //ZKFPEngX1.VerFingerFromStr(sRegTemp, sVerTemplate, False, ref regChange) } if (FMatchType == 2) //1:N { if (!FAutoIdentify) { // recommended value is 9 Score = 9; ZKFPEngX1.FPEngineVersion = "9"; //var ss = (Array)ZKFPEngX1.GetTemplate(); //object bm = null; //var img = ZKFPEngX1.GetFingerImage(ref bm); //pictureBox1.Image = Common.Utils.byteArrayToImage((byte[])bm); //bool b = ZKFPEngX1.SaveTemplate("________tplGiovanny____", ZKFPEngX1.GetTemplate()); ID = ZKFPEngX1.IdentificationFromStrInFPCacheDB(fpcHandle, ZKFPEngX1.GetTemplateAsStringEx("9"), ref Score, ref ProcessNum); if (ID == -1) { ShowHintInfo("Error Identificando Puntuación! = " + Convert.ToString(Score)); ShowHintImage(2); } else { String strTemp = "Identificación exitosa!\n" + " Score =" + Convert.ToString(Score); ShowHintInfo(strTemp); ShowHintImage(1); } if (ID > 0) { lblresult.Text = "Verificación exitosa"; } else { lblresult.Text = "Lo sentimos, Error en la verificación!"; } } else { ID = 0; Score = 0; // e.aTemplate datos para el tipo de objeto, que se aisló y se convierte en un entero Array _ObjectArray = (Array)e.aTemplate; int _ObjectCount = _ObjectArray.GetLength(0); ID = Convert.ToInt32(_ObjectArray.GetValue(0)); Score = Convert.ToInt32(_ObjectArray.GetValue(1)); //FingerPrintTemplate = ((int[])e.aTemplate).Select(x => (byte)x).ToArray(); if (ID == -1) { lblresult.Text = "Error en Auto Identificación de Huella Dactilar!"; ShowHintInfo("Error en Auto Identificación de Huella Dactilar!"); ShowHintImage(2); } else { lblresult.Text = "Auto Identificación de Huella Dactilar exitosa!"; ShowHintInfo("Auto Identificación de Huella Dactilar exitosa! Puntuación =" + Convert.ToString(Score)); ShowHintImage(1); } } } }
//指纹比对事件 (该例中只有1:N比对,即同指纹识别高速缓冲空间德指纹信息进行比对) private void ZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { int ID, i; int Score = new int(); int ProcessNum = new int(); ShowHintInfo("Acquired fingerprint template:"); if (FMatchType == 1)//1:1比对(一般用法为把登记好的指纹保存到数据库,1:1比对时,先从数据库获取到相应编号的指纹模板,再同现在比对时获取的指纹进行比对) { //下面该段代码未实现 sRegTemp为从数据库获取的指纹模板, sVerTemplate为该时刻比对时的指纹 //ZKFPEngX1.VerFingerFromStr(sRegTemp, sVerTemplate, False, ref regChange) } if (FMatchType == 2)//1:N比对 { if (!FAutoIdentify) { if (Radio9.Checked) { ZKFPEngX1.FPEngineVersion = "9"; ID = ZKFPEngX1.IdentificationFromStrInFPCacheDB(fpcHandle, ZKFPEngX1.GetTemplateAsStringEx("9"), ref Score, ref ProcessNum); } else { ZKFPEngX1.FPEngineVersion = "10"; ID = ZKFPEngX1.IdentificationFromStrInFPCacheDB(fpcHandle, ZKFPEngX1.GetTemplateAsStringEx("10"), ref Score, ref ProcessNum); } if (ID == -1) { ShowHintInfo("Identification Failed! Score = " + Convert.ToString(Score)); ShowHintImage(2); } else { String strTemp = "Identification success!\n" + " Score =" + Convert.ToString(Score); ShowHintInfo(strTemp); ShowHintImage(1); } if (ID > 0) { lblresult.Text = "Verify success"; } else { lblresult.Text = "Sorry,Verify failed!"; } } else { ID = 0; Score = 0; //e.aTemplate为object类型数据,将其分离并转化为整型 Array _ObjectArray = (Array)e.aTemplate; int _ObjectCount = _ObjectArray.GetLength(0); for (i = 0; i < 2; i++) { if (i == 0) { ID = Convert.ToInt32(_ObjectArray.GetValue(i)); } else { Score = Convert.ToInt32(_ObjectArray.GetValue(i)); } } if (ID == -1) { lblresult.Text = "Fingerprint Auto Identify Failed!"; ShowHintInfo("Fingerprint Auto Identify Failed!"); ShowHintImage(2); } else { lblresult.Text = "Fingerprint Auto identification success!"; ShowHintInfo("Fingerprint Auto identification success! Score =" + Convert.ToString(Score)); ShowHintImage(1); } } } }