Example #1
0
        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;
            }
        }
Example #3
0
        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 = "验证未通过";
            }
        }
Example #4
0
 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);
     }
 }
Example #5
0
        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);
            }
        }
Example #6
0
        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;
            }
        }
Example #7
0
        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("您好,没有获取到完整的指纹信息,请重新录入指纹!", "提示");
            }
        }
Example #8
0
        //指纹比对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("比对失败!");
            }
        }
Example #9
0
        // 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);
                    }
                }
            }
        }
Example #10
0
        //指纹比对事件  (该例中只有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);
                    }
                }
            }
        }