private void cmdGetEnrollData_Click(object sender, EventArgs e) { int vEnrollNumber; int vEMachineNumber; int vFingerNumber; int vPrivilege = 0; Boolean vRet; int vErrorCode = 0; int i; GCHandle gh; IntPtr AddrOfTemplngEnrollData; lblEnrollData.Text = "Enrolled Data"; lstEnrollData.Items.Clear(); Label2.Text = ""; lstEnrollData.Items.Clear(); lblMessage.Text = "Working..."; Application.DoEvents(); vRet = bpc.EnableDevice(Program.gMachineNumber, 0); // 0 : false if (!vRet) { lblMessage.Text = util.gstrNoDevice; return; } vEnrollNumber = Convert.ToInt32(txtEnrollNumber.Text); vFingerNumber = Convert.ToInt32(cmbBackupNumber.Text); if (vFingerNumber == 10) { vFingerNumber = 15; } vEMachineNumber = Convert.ToInt32(cmbEMachineNumber.Text); gh = GCHandle.Alloc(gTemplngEnrollData, GCHandleType.Pinned); AddrOfTemplngEnrollData = gh.AddrOfPinnedObject(); glngEnrollPData = 0; int nAddr = AddrOfTemplngEnrollData.ToInt32(); vRet = bpc.GetEnrollData1(Program.gMachineNumber, vEnrollNumber, vFingerNumber, ref vPrivilege, ref nAddr, ref glngEnrollPData); gh.Free(); if (vRet) { cmbPrivilege.SelectedIndex = vPrivilege; lblMessage.Text = "GetEnrollData OK"; if (vFingerNumber == 15) { txtCardNumber.Text = ""; while (glngEnrollPData > 0) { i = glngEnrollPData % 16 - 1 + ascii.GetBytes("0")[0]; Byte[] b = new Byte[1]; b[0] = (Byte)i; txtCardNumber.Text = txtCardNumber.Text + ascii.GetString(b); glngEnrollPData = glngEnrollPData / 16; } } else if (vFingerNumber == 11) { txtCardNumber.Text = (Convert.ToString(glngEnrollPData, 16).ToUpper()); } else if (vFingerNumber == 14) { txtUserTz1.Text = Convert.ToString(glngEnrollPData / 256); txtUserTz2.Text = Convert.ToString(glngEnrollPData % 256); } else { for (i = 0; i < DATASIZE; i++) { lstEnrollData.Items.Add(Convert.ToString(gTemplngEnrollData[i])); } } } else { bpc.GetLastError(ref vErrorCode); lblMessage.Text = util.ErrorPrint(vErrorCode); } bpc.EnableDevice(Program.gMachineNumber, 1); // 1 : true }
private void cmdSetEnrollData_Click(object sender, EventArgs e) { int vEnrollNumber; int vEMachineNumber; int vFingerNumber; int vPrivilege; Boolean vRet; int vErrorCode = 0; GCHandle gh; IntPtr AddrOfTemplngEnrollData; lblMessage.Text = "Working..."; Application.DoEvents(); if (txtEnrollNumber.Text == "") { txtEnrollNumber.Text = "0"; } if (txtCardNumber.Text == "") { txtCardNumber.Text = "0"; } vEnrollNumber = Convert.ToInt32(txtEnrollNumber.Text); vFingerNumber = Convert.ToInt32(cmbBackupNumber.Text); if (vFingerNumber == 10) { vFingerNumber = 15; } vPrivilege = Convert.ToInt32(cmbPrivilege.Text); vEMachineNumber = Convert.ToInt32(cmbEMachineNumber.Text); if (vFingerNumber == 11) // Card { glngEnrollPData = Convert.ToInt32(txtCardNumber.Text, 16); } else if (vFingerNumber == 15) // Password { int i = txtCardNumber.Text.Length; if (i > 4) { i = 4; } glngEnrollPData = 0; while (i > 0) { glngEnrollPData = glngEnrollPData * 16 + Convert.ToInt16(txtCardNumber.Text.Substring(i - 1, 1)) + 1; i--; } } else if (vFingerNumber == 14) // User Depart { glngEnrollPData = 0; glngEnrollPData = Convert.ToInt16(txtUserTz1.Text) * 256 + Convert.ToInt16(txtUserTz2.Text); } vRet = bpc.EnableDevice(Program.gMachineNumber, 0); // 0 : false if (!vRet) { lblMessage.Text = util.gstrNoDevice; return; } gh = GCHandle.Alloc(gTemplngEnrollData, GCHandleType.Pinned); AddrOfTemplngEnrollData = gh.AddrOfPinnedObject(); int nAddr = AddrOfTemplngEnrollData.ToInt32(); vRet = bpc.SetEnrollData1(Program.gMachineNumber, vEnrollNumber, vFingerNumber, vPrivilege, ref nAddr, glngEnrollPData); gh.Free(); if (vRet) { lblMessage.Text = "SetEnrollData OK"; } else { bpc.GetLastError(ref vErrorCode); lblMessage.Text = util.ErrorPrint(vErrorCode); } bpc.EnableDevice(Program.gMachineNumber, 1); // 1 : true }