这段指纹仪的代码看不懂,我想把存储放在数据里,以后可以调用怎么做呢

来源:互联网 发布:波兰海关数据 编辑:程序博客网 时间:2024/04/29 05:34

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using pubclass;
using System.Data.SqlClient;

namespace ypgspgl
{
    public partial class zwxx : Form
    {
        [DllImport("user32.dll")]
        public static extern IntPtr GetDC(IntPtr hWnd);

        object FRegTemplate;
        int FingerCount;
        int fpcHandle;

        string[] FFingerNames = new string[1000];
        int FMatchType;

        string s_zkfp;
        char[] s_zkfp1 = new char[2000];

        public zwxx()
        {
            InitializeComponent();
        }

       
        [STAThread]
        /*static void Main()
        {
            Application.Run(new zwxx());
        }*/

        private void button1_Click(object sender, System.EventArgs e)
        {
            int Init;

            Init = axZKFPEngX1.InitEngine();
            if (Init == 0)
            {
                MessageBox.Show("初始化成功!");
                textBox1.Text = (axZKFPEngX1.SensorCount).ToString();
                textBox2.Text = axZKFPEngX1.SensorSN;
            }
            FMatchType = 0;
        }


        private void axZKFPEngX1_OnImageReceived(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnImageReceivedEvent e)
        {

            pictureBox1.Refresh();
            axZKFPEngX1.PrintImageAt((GetDC(this.pictureBox1.Handle)).ToInt32(), 0, 0, pictureBox1.Width, pictureBox1.Height);

        }

        private void axZKFPEngX1_OnFeatureInfo(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnFeatureInfoEvent e)
        {
            String sTemp;

            sTemp = "";
            if (axZKFPEngX1.IsRegister)
            {
                sTemp = "登记状态: 还需要按压";
                sTemp = sTemp + (axZKFPEngX1.EnrollIndex).ToString() + "次手指!";
            }
            sTemp = sTemp + " 指纹质量";

            if (e.aQuality != 0)
                sTemp = sTemp + "不合格: " + e.aQuality.ToString();
            else
                sTemp = sTemp + "合格";

            //statusBar1.Text = sTemp;
            toolStripStatusLabel1.Text = sTemp;
        }

        private void axZKFPEngX1_OnEnroll(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnEnrollEvent e)
        {
            object pTemplate;

            if (!e.actionResult)
                MessageBox.Show("指纹登记失败!");
            else
            {
                MessageBox.Show("指纹登记成功!");

                pTemplate = axZKFPEngX1.GetTemplate();

                s_zkfp = axZKFPEngX1.EncodeTemplate1(pTemplate);

                FRegTemplate = pTemplate;

                //  string addStr = pubc.SqlCmd("insert into zwxx(name,finger1,finger2,finger3,id) values('" + this.textBox1.Text + "','" + this.textBox2.Text + "','0','N','" + schek + "')");

                axZKFPEngX1.SaveTemplate("D://Program Files//fingerprint.tpl", e.aTemplate);
                axZKFPEngX1.AddRegTemplateFileToFPCacheDB(fpcHandle, FingerCount, "D://Program Files//fingerprint.tpl");
                FFingerNames[FingerCount] = textBox3.Text;

                FingerCount = FingerCount + 1;
            }
        }

        private void axZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e)
        {
            long fi;
            int Score, ProcessNum;
            bool RegChanged;
            char[] buffer = new char[80];

 

            toolStripStatusLabel1.Text = "取得指纹特征模板";
            if (FMatchType == 1)
            {
                RegChanged = true;
                if (axZKFPEngX1.VerFinger(ref FRegTemplate, e.aTemplate, false, ref RegChanged))
                    MessageBox.Show("指纹比对成功!");
                else
                {
                    MessageBox.Show("指纹比对失败!");
                    this.Close();
                }
            }
            /*else if (FMatchType == 2)
            {  //1:N
                Score = 8;
                ProcessNum = 0;
                fi = axZKFPEngX1.IdentificationInFPCacheDB(fpcHandle, e.aTemplate, ref Score, ref ProcessNum);
                if (fi == -1)
                    MessageBox.Show("指纹比对失败!");
                else
                {
                    MessageBox.Show("指纹比对成功!" + " Name = " + FFingerNames[fi].ToString() + " Score = " + Score.ToString() + " Processed Number = " + ProcessNum.ToString());
                }
            }*/
        }

        private void button2_Click(object sender, System.EventArgs e)
        {
            if (textBox3.Text == "")
            {
                MessageBox.Show("请输入指纹所有者!");
                return;
            }
            axZKFPEngX1.BeginEnroll();
            //statusBar1.Text = "开始登记";
            toolStripStatusLabel1.Text = "开始登记";
        }

        private void button3_Click(object sender, System.EventArgs e)
        {
            if (axZKFPEngX1.IsRegister)
                axZKFPEngX1.CancelEnroll();
            toolStripStatusLabel1.Text = "开始比对(1:1)";
            FMatchType = 1;
        }

        /*private void button4_Click(object sender, System.EventArgs e)
        {
            if (axZKFPEngX1.IsRegister)
                axZKFPEngX1.CancelEnroll();
            toolStripStatusLabel1.Text = "开始比对(1:N)";
            FMatchType = 2;
        }*/

        private void zwxx_Load(object sender, System.EventArgs e)
        {
            FingerCount = 0;
            fpcHandle = axZKFPEngX1.CreateFPCacheDB();
        }

        private void zwxx_Closed(object sender, System.EventArgs e)
        {
            axZKFPEngX1.FreeFPCacheDB(fpcHandle);
        }

        //private void axZKFPEngX1_OnFingerTouching(object sender, EventArgs e)
        //{

        //}

    }
}

原创粉丝点击