Пример #1
0
 public void SetIDCard(IDCard card)
 {
     this.txtName.Text = card.Name;
     this.txtIdCard.Text = card.IDC;
     this.txtAddress.Text = card.ADDRESS;
     this.dateBirthday.Value = card.BIRTH;
     this.cbSex.Text = IDCardHelper.GetSexName(card.IDC);
 }
Пример #2
0
 private static void ReadIdCard(IDCard idcard)
 {
     string path = Application.StartupPath+"//success.wav";
     SystemDefine.PlaySound(path, 0, SystemDefine.SND_ASYNC | SystemDefine.SND_FILENAME);//播放音乐
     SendKeys.SendWait(idcard.IDC.ToUpper());
     IDCardConfig config = StaticCacheManager.GetConfig<IDCardConfig>();
     if (config.AddReturn)
     {
         SendKeys.SendWait("{ENTER}");
     }
 }
Пример #3
0
        /// <summary>
        /// 读取身份证信息
        /// </summary>
        public void Read()
        {
            if (!this.hasInit)
            {
                this.Init();
            }
            IDCard card = new IDCard();

            if (CVR_Read_Content(1) == 0)
            {
                throw new Exception("未放卡或卡片放置不正确!");
            }
        }
Пример #4
0
 private void AfterReadIdCard(IDCard card)
 {
     //TODO,所属地区代码的实现
        // card.PIC_Image;
     this.lbIdCardQfjg.Text = card.REGORG;
     this.lbIdCardYxqx.Text = card.Period_Of_Validity_CName;
     this.picIdCardImage.Image = card.PIC_Image;
     this.picIdCardImage.SizeMode = PictureBoxSizeMode.StretchImage;
     this.lbIdCardSfzmhm.Text = card.IDC;
     this.lbIDCardName.Text = card.Name;
     this.lbIdCardNational.Text = card.IDC;
        // this.InitByIdCard(this.txtIdCard.Text);
     this.lbIdCardAddress.Text = card.ADDRESS;
     this.lbIdCardBirthDay.Text = card.BIRTH.ToString("yyyy 年 MM 月 dd 日");
     this.lbIdCardSex.Text = IDCardHelper.GetSexName(card.IDC);
 }
Пример #5
0
        public void ReadFromFile(IDCard card)
        {
            FileInfo   f  = new FileInfo("wz.txt");
            FileStream fs = f.OpenRead();

            byte[] bt = new byte[fs.Length];
            fs.Read(bt, 0, (int)fs.Length);
            fs.Close();

            string str = System.Text.UnicodeEncoding.Unicode.GetString(bt);

            card.Name        = System.Text.UnicodeEncoding.Unicode.GetString(bt, 0, 30).Trim();
            card.Sex_Code    = System.Text.UnicodeEncoding.Unicode.GetString(bt, 30, 2).Trim();
            card.NATION_Code = System.Text.UnicodeEncoding.Unicode.GetString(bt, 32, 4).Trim();
            string strBird = System.Text.UnicodeEncoding.Unicode.GetString(bt, 36, 16).Trim();

            card.BIRTH   = Convert.ToDateTime(strBird.Substring(0, 4) + "年" + strBird.Substring(4, 2) + "月" + strBird.Substring(6) + "日");
            card.ADDRESS = System.Text.UnicodeEncoding.Unicode.GetString(bt, 52, 70).Trim();
            card.IDC     = System.Text.UnicodeEncoding.Unicode.GetString(bt, 122, 36).Trim();
            card.REGORG  = System.Text.UnicodeEncoding.Unicode.GetString(bt, 158, 30).Trim();
            string strTem = System.Text.UnicodeEncoding.Unicode.GetString(bt, 188, bt.GetLength(0) - 188).Trim();

            card.STARTDATE = Convert.ToDateTime(strTem.Substring(0, 4) + "年" + strTem.Substring(4, 2) + "月" + strTem.Substring(6, 2) + "日");
            strTem         = strTem.Substring(8);
            if (strTem.Trim() != "长期")
            {
                card.ENDDATE = Convert.ToDateTime(strTem.Substring(0, 4) + "年" + strTem.Substring(4, 2) + "月" + strTem.Substring(6, 2) + "日");
            }
            else
            {
                card.ENDDATE = DateTime.MaxValue;
            }
            FileInfo objFile = null;

            objFile = new FileInfo("zp.bmp");
            if (objFile.Exists)
            {
                Image img = Image.FromFile("zp.bmp");
                card.PIC_Image = (Image)img.Clone();
                System.IO.MemoryStream m = new MemoryStream();
                img.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
                card.PIC_Byte = m.ToArray();
                img.Dispose();
                img = null;
            }
        }
Пример #6
0
        public IDCard Clone()
        {
            IDCard tmp = new IDCard();

            tmp.ADDRESS                  = this.ADDRESS;
            tmp.BIRTH                    = this.BIRTH;
            tmp.ENDDATE                  = this.ENDDATE;
            tmp.IDC                      = this.IDC;
            tmp.Name                     = this.Name;
            tmp.NATION_CName             = this.NATION_CName;
            tmp.NATION_Code              = this.NATION_Code;
            tmp.Period_Of_Validity_CName = this.Period_Of_Validity_CName;
            tmp.Period_Of_Validity_Code  = this.Period_Of_Validity_Code;
            tmp.PIC_Byte                 = this.PIC_Byte;
            tmp.PIC_Image                = this.PIC_Image;
            tmp.REGORG                   = this.REGORG;
            tmp.Sex_CName                = this.Sex_CName;
            tmp.Sex_Code                 = this.Sex_Code;
            tmp.STARTDATE                = this.STARTDATE;
            return(tmp);
        }
Пример #7
0
 private void AfterReadIdCard(IDCard card)
 {
     //TODO,������������ʵ��
     this.txtName.Text = card.Name;
     this.txtIdCard.Text = card.IDC;
     this.InitByIdCard(this.txtIdCard.Text);
     this.txtRegAddress.Text=this.txtConnAddress.Text = card.ADDRESS;
     this.dateBirthday.Value = card.BIRTH;
     this.cbSex.Text = IDCardHelper.GetSexName(card.IDC);
 }
Пример #8
0
        private void ReadIdCardComplete(IDCard card)
        {
            if (card != null)
            {
                this.cbBaseSyrIdCardType.SelectedIndex = 0;
                this.txtBaseSyrIdCard.Text = card.IDC;
                this.txtBaseSyrConnAddress.Text = card.ADDRESS;
                this.txtBaseSyrRegAddress.Text = card.ADDRESS;
                //card.REGORG
                this.txtBaseSyrName.Text = card.Name;

            }
        }
Пример #9
0
 private void AfterReadIdCard(IDCard card)
 {
     this.personDetail1.SetIDCard(card);
 }
Пример #10
0
        /// <summary>
        /// 读卡,返回各种原因
        /// </summary>
        /// <returns>
        /// -1:端口打开失败,请检测相应的端口或者重新连接读卡器
        /// 1:未放卡或者卡未放好
        /// 2:读卡失败
        /// 3:读卡数据失败
        /// 0:读卡成功
        /// </returns>
        public int ReadICCard()
        {
            bool bUsbPort = false;
            int intOpenPortRtn = 0;
            int rtnTemp = 0;
            int pucIIN = 0;
            int pucSN = 0;
            int puiCHMsgLen = 0;
            int puiPHMsgLen = 0;

            objEDZ = new IDCard();
            //检测usb口的机具连接,必须先检测usb
            for (int iPort = 1001; iPort <= 1016; iPort++)
            {
                intOpenPortRtn = SDT_OpenPort(iPort);
                if (intOpenPortRtn == 144)
                {
                    EdziPortID = iPort;
                    bUsbPort = true;

                    log.Debug("二代证读卡器连接的端口为!"+iPort);
                    break;
                }
            }
            //检测串口的机具连接
            if (!bUsbPort)
            {
                for (int iPort = 1; iPort <= 8; iPort++)
                {
                    intOpenPortRtn = SDT_OpenPort(iPort);
                    if (intOpenPortRtn == 144)
                    {
                        EdziPortID = iPort;
                        bUsbPort = false;
                        break;
                    }
                }
            }
            if (intOpenPortRtn != 144)
            {

                log.Debug("端口打开失败,请检测相应的端口或者重新连接读卡器!");
                //MessageBox.Show("端口打开失败,请检测相应的端口或者重新连接读卡器!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return -1;
            }
            //在这里,如果您想下一次不用再耗费检查端口的检查的过程,您可以把 EdziPortID 保存下来,可以保存在注册表中,也可以保存在配置文件中,我就不多写了,但是,
            //您要考虑机具连接端口被用户改变的情况哦

            //下面找卡
            rtnTemp = SDT_StartFindIDCard(EdziPortID, ref pucIIN, EdziIfOpen);
            if (rtnTemp != 159)
            {
                rtnTemp = SDT_StartFindIDCard(EdziPortID, ref pucIIN, EdziIfOpen);  //再找卡
                if (rtnTemp != 159)
                {
                    rtnTemp = SDT_ClosePort(EdziPortID);
                    log.Debug("未放卡或者卡未放好,请重新放卡!");
                    //MessageBox.Show("", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return 1;
                }
            }
            //选卡
            rtnTemp = SDT_SelectIDCard(EdziPortID, ref pucSN, EdziIfOpen);
            if (rtnTemp != 144)
            {
                rtnTemp = SDT_SelectIDCard(EdziPortID, ref pucSN, EdziIfOpen);  //再选卡
                if (rtnTemp != 144)
                {
                    rtnTemp = SDT_ClosePort(EdziPortID);
                    log.Debug("读卡失败!");
                   // MessageBox.Show("读卡失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return 2;
                }
            }
            //注意,在这里,用户必须有应用程序当前目录的读写权限
            FileInfo objFile = new FileInfo("wz.txt");
            if (objFile.Exists)
            {
                objFile.Attributes = FileAttributes.Normal;
                objFile.Delete();
            }
            objFile = new FileInfo("zp.bmp");
            if (objFile.Exists)
            {
                objFile.Attributes = FileAttributes.Normal;
                objFile.Delete();
            }
            objFile = new FileInfo("zp.wlt");
            if (objFile.Exists)
            {
                objFile.Attributes = FileAttributes.Normal;
                objFile.Delete();
            }
            rtnTemp = SDT_ReadBaseMsgToFile(EdziPortID, "wz.txt", ref puiCHMsgLen, "zp.wlt", ref puiPHMsgLen, EdziIfOpen);
            if (rtnTemp != 144)
            {
                rtnTemp = SDT_ClosePort(EdziPortID);
                log.Debug("读卡数据失败!");
               // MessageBox.Show("读卡失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return 3;
            }
            //下面解析照片,注意,如果在C盘根目录下没有机具厂商的授权文件Termb.Lic,照片解析将会失败
            if (bUsbPort)
                rtnTemp = GetBmp("zp.wlt", 2);
            else
                rtnTemp = GetBmp("zp.wlt", 1);
            switch (rtnTemp)
            {
                case 0:
                    log.Debug("调用sdtapi.dll错误!");
                    //MessageBox.Show("调用sdtapi.dll错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                case 1:   //正常
                    break;
                case -1:
                    log.Debug("调用sdtapi.dll错误!");
                   // MessageBox.Show("相片解码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                case -2:
                    log.Debug("wlt文件后缀错误!");
                   // MessageBox.Show("wlt文件后缀错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                case -3:
                    log.Debug("wlt文件打开错误!");
                    //MessageBox.Show("wlt文件打开错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                case -4:
                    log.Debug("wlt文件格式错误!");
                   // MessageBox.Show("wlt文件格式错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                case -5:
                    log.Debug("软件未授权!");
                   // MessageBox.Show("软件未授权!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                case -6:
                    log.Debug("设备连接错误!");
                    //MessageBox.Show("设备连接错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
            }
            rtnTemp = SDT_ClosePort(EdziPortID);
            FileInfo f = new FileInfo("wz.txt");
            FileStream fs = f.OpenRead();
            byte[] bt = new byte[fs.Length];
            fs.Read(bt, 0, (int)fs.Length);
            fs.Close();

            string str = System.Text.UnicodeEncoding.Unicode.GetString(bt);

            objEDZ.Name = System.Text.UnicodeEncoding.Unicode.GetString(bt, 0, 30).Trim();
            objEDZ.Sex_Code = System.Text.UnicodeEncoding.Unicode.GetString(bt, 30, 2).Trim();
            objEDZ.NATION_Code = System.Text.UnicodeEncoding.Unicode.GetString(bt, 32, 4).Trim();
            string strBird = System.Text.UnicodeEncoding.Unicode.GetString(bt, 36, 16).Trim();
            objEDZ.BIRTH = Convert.ToDateTime(strBird.Substring(0, 4) + "年" + strBird.Substring(4, 2) + "月" + strBird.Substring(6) + "日");
            objEDZ.ADDRESS = System.Text.UnicodeEncoding.Unicode.GetString(bt, 52, 70).Trim();
            objEDZ.IDC = System.Text.UnicodeEncoding.Unicode.GetString(bt, 122, 36).Trim();
            objEDZ.REGORG = System.Text.UnicodeEncoding.Unicode.GetString(bt, 158, 30).Trim();
            string strTem = System.Text.UnicodeEncoding.Unicode.GetString(bt, 188, bt.GetLength(0) - 188).Trim();
            objEDZ.STARTDATE = Convert.ToDateTime(strTem.Substring(0, 4) + "年" + strTem.Substring(4, 2) + "月" + strTem.Substring(6, 2) + "日");
            strTem = strTem.Substring(8);
            if (strTem.Trim() != "长期")
            {
                objEDZ.ENDDATE = Convert.ToDateTime(strTem.Substring(0, 4) + "年" + strTem.Substring(4, 2) + "月" + strTem.Substring(6, 2) + "日");
            }
            else
            {
                objEDZ.ENDDATE = DateTime.MaxValue;
            }
            objFile = new FileInfo("zp.bmp");
            if (objFile.Exists)
            {
                Image img = Image.FromFile("zp.bmp");
                objEDZ.PIC_Image = (Image)img.Clone();
                System.IO.MemoryStream m = new MemoryStream();
                img.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
                objEDZ.PIC_Byte = m.ToArray();
                img.Dispose();
                img = null;
            }

               // ReadICCardComplete(objEDZ);
            //System.Threading.Thread.Sleep(50);
            return 0;
        }
Пример #11
0
 public IDCard Clone()
 {
     IDCard tmp = new IDCard();
     tmp.ADDRESS = this.ADDRESS;
     tmp.BIRTH = this.BIRTH;
     tmp.ENDDATE = this.ENDDATE;
     tmp.IDC = this.IDC;
     tmp.Name = this.Name;
     tmp.NATION_CName = this.NATION_CName;
     tmp.NATION_Code = this.NATION_Code;
     tmp.Period_Of_Validity_CName = this.Period_Of_Validity_CName;
     tmp.Period_Of_Validity_Code = this.Period_Of_Validity_Code;
     tmp.PIC_Byte = this.PIC_Byte;
     tmp.PIC_Image = this.PIC_Image;
     tmp.REGORG = this.REGORG;
     tmp.Sex_CName = this.Sex_CName;
     tmp.Sex_Code = this.Sex_Code;
     tmp.STARTDATE = this.STARTDATE;
     return tmp;
 }
Пример #12
0
        public void ReadFromFile(IDCard card)
        {
            FileInfo f = new FileInfo("wz.txt");
            FileStream fs = f.OpenRead();
            byte[] bt = new byte[fs.Length];
            fs.Read(bt, 0, (int)fs.Length);
            fs.Close();

            string str = System.Text.UnicodeEncoding.Unicode.GetString(bt);

            card.Name = System.Text.UnicodeEncoding.Unicode.GetString(bt, 0, 30).Trim();
            card.Sex_Code = System.Text.UnicodeEncoding.Unicode.GetString(bt, 30, 2).Trim();
            card.NATION_Code = System.Text.UnicodeEncoding.Unicode.GetString(bt, 32, 4).Trim();
            string strBird = System.Text.UnicodeEncoding.Unicode.GetString(bt, 36, 16).Trim();
            card.BIRTH = Convert.ToDateTime(strBird.Substring(0, 4) + "年" + strBird.Substring(4, 2) + "月" + strBird.Substring(6) + "日");
            card.ADDRESS = System.Text.UnicodeEncoding.Unicode.GetString(bt, 52, 70).Trim();
            card.IDC = System.Text.UnicodeEncoding.Unicode.GetString(bt, 122, 36).Trim();
            card.REGORG = System.Text.UnicodeEncoding.Unicode.GetString(bt, 158, 30).Trim();
            string strTem = System.Text.UnicodeEncoding.Unicode.GetString(bt, 188, bt.GetLength(0) - 188).Trim();
            card.STARTDATE = Convert.ToDateTime(strTem.Substring(0, 4) + "年" + strTem.Substring(4, 2) + "月" + strTem.Substring(6, 2) + "日");
            strTem = strTem.Substring(8);
            if (strTem.Trim() != "长期")
            {
                card.ENDDATE = Convert.ToDateTime(strTem.Substring(0, 4) + "年" + strTem.Substring(4, 2) + "月" + strTem.Substring(6, 2) + "日");
            }
            else
            {
                card.ENDDATE = DateTime.MaxValue;
            }
            FileInfo objFile = null;
            objFile = new FileInfo("zp.bmp");
            if (objFile.Exists)
            {
                Image img = Image.FromFile("zp.bmp");
                card.PIC_Image = (Image)img.Clone();
                System.IO.MemoryStream m = new MemoryStream();
                img.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
                card.PIC_Byte = m.ToArray();
                img.Dispose();
                img = null;
            }
        }
Пример #13
0
 /// <summary>
 /// 读取身份证信息
 /// </summary>
 public void Read()
 {
     if (!this.hasInit)
     {
         this.Init();
     }
     IDCard card = new IDCard();
     if (CVR_Read_Content(1) == 0)
     {
         throw new Exception("未放卡或卡片放置不正确!");
     }
 }
Пример #14
0
 void reader_ReadICCardComplete(IDCard card)
 {
     this.txtName.Text = card.Name;
     this.txtSex.Text = card.Sex_CName;
     this.txtRace.Text = card.NATION_CName;
     this.txtBirthday.Text = card.BIRTH.ToShortDateString();
     this.txtAddress.Text = card.ADDRESS;
     this.txtDateBegin.Text = card.STARTDATE.ToShortDateString();
     this.txtDateEnd.Text = card.ENDDATE.ToShortDateString();
     this.txtNewData.Text = card.Period_Of_Validity_CName;
     this.pictureBox1.Image=card.PIC_Image;
 }
Пример #15
0
 void cvReader_AfterReadICCardComplete(IDCard card)
 {
     //throw new Exception("The method or operation is not implemented.");
 }
Пример #16
0
        /// <summary>
        /// 读卡,返回各种原因
        /// </summary>
        /// <returns>
        /// -1:端口打开失败,请检测相应的端口或者重新连接读卡器
        /// 1:未放卡或者卡未放好
        /// 2:读卡失败
        /// 3:读卡数据失败
        /// 0:读卡成功
        /// </returns>
        public int ReadICCard()
        {
            bool bUsbPort       = false;
            int  intOpenPortRtn = 0;
            int  rtnTemp        = 0;
            int  pucIIN         = 0;
            int  pucSN          = 0;
            int  puiCHMsgLen    = 0;
            int  puiPHMsgLen    = 0;

            objEDZ = new IDCard();
            //检测usb口的机具连接,必须先检测usb
            for (int iPort = 1001; iPort <= 1016; iPort++)
            {
                intOpenPortRtn = SDT_OpenPort(iPort);
                if (intOpenPortRtn == 144)
                {
                    EdziPortID = iPort;
                    bUsbPort   = true;

                    log.Debug("二代证读卡器连接的端口为!" + iPort);
                    break;
                }
            }
            //检测串口的机具连接
            if (!bUsbPort)
            {
                for (int iPort = 1; iPort <= 8; iPort++)
                {
                    intOpenPortRtn = SDT_OpenPort(iPort);
                    if (intOpenPortRtn == 144)
                    {
                        EdziPortID = iPort;
                        bUsbPort   = false;
                        break;
                    }
                }
            }
            if (intOpenPortRtn != 144)
            {
                log.Debug("端口打开失败,请检测相应的端口或者重新连接读卡器!");
                //MessageBox.Show("端口打开失败,请检测相应的端口或者重新连接读卡器!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(-1);
            }
            //在这里,如果您想下一次不用再耗费检查端口的检查的过程,您可以把 EdziPortID 保存下来,可以保存在注册表中,也可以保存在配置文件中,我就不多写了,但是,
            //您要考虑机具连接端口被用户改变的情况哦

            //下面找卡
            rtnTemp = SDT_StartFindIDCard(EdziPortID, ref pucIIN, EdziIfOpen);
            if (rtnTemp != 159)
            {
                rtnTemp = SDT_StartFindIDCard(EdziPortID, ref pucIIN, EdziIfOpen);  //再找卡
                if (rtnTemp != 159)
                {
                    rtnTemp = SDT_ClosePort(EdziPortID);
                    log.Debug("未放卡或者卡未放好,请重新放卡!");
                    //MessageBox.Show("", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(1);
                }
            }
            //选卡
            rtnTemp = SDT_SelectIDCard(EdziPortID, ref pucSN, EdziIfOpen);
            if (rtnTemp != 144)
            {
                rtnTemp = SDT_SelectIDCard(EdziPortID, ref pucSN, EdziIfOpen);  //再选卡
                if (rtnTemp != 144)
                {
                    rtnTemp = SDT_ClosePort(EdziPortID);
                    log.Debug("读卡失败!");
                    // MessageBox.Show("读卡失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(2);
                }
            }
            //注意,在这里,用户必须有应用程序当前目录的读写权限
            FileInfo objFile = new FileInfo("wz.txt");

            if (objFile.Exists)
            {
                objFile.Attributes = FileAttributes.Normal;
                objFile.Delete();
            }
            objFile = new FileInfo("zp.bmp");
            if (objFile.Exists)
            {
                objFile.Attributes = FileAttributes.Normal;
                objFile.Delete();
            }
            objFile = new FileInfo("zp.wlt");
            if (objFile.Exists)
            {
                objFile.Attributes = FileAttributes.Normal;
                objFile.Delete();
            }
            rtnTemp = SDT_ReadBaseMsgToFile(EdziPortID, "wz.txt", ref puiCHMsgLen, "zp.wlt", ref puiPHMsgLen, EdziIfOpen);
            if (rtnTemp != 144)
            {
                rtnTemp = SDT_ClosePort(EdziPortID);
                log.Debug("读卡数据失败!");
                // MessageBox.Show("读卡失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(3);
            }
            //下面解析照片,注意,如果在C盘根目录下没有机具厂商的授权文件Termb.Lic,照片解析将会失败
            if (bUsbPort)
            {
                rtnTemp = GetBmp("zp.wlt", 2);
            }
            else
            {
                rtnTemp = GetBmp("zp.wlt", 1);
            }
            switch (rtnTemp)
            {
            case 0:
                log.Debug("调用sdtapi.dll错误!");
                //MessageBox.Show("调用sdtapi.dll错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;

            case 1:       //正常
                break;

            case -1:
                log.Debug("调用sdtapi.dll错误!");
                // MessageBox.Show("相片解码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;

            case -2:
                log.Debug("wlt文件后缀错误!");
                // MessageBox.Show("wlt文件后缀错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;

            case -3:
                log.Debug("wlt文件打开错误!");
                //MessageBox.Show("wlt文件打开错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;

            case -4:
                log.Debug("wlt文件格式错误!");
                // MessageBox.Show("wlt文件格式错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;

            case -5:
                log.Debug("软件未授权!");
                // MessageBox.Show("软件未授权!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;

            case -6:
                log.Debug("设备连接错误!");
                //MessageBox.Show("设备连接错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;
            }
            rtnTemp = SDT_ClosePort(EdziPortID);
            FileInfo   f  = new FileInfo("wz.txt");
            FileStream fs = f.OpenRead();

            byte[] bt = new byte[fs.Length];
            fs.Read(bt, 0, (int)fs.Length);
            fs.Close();

            string str = System.Text.UnicodeEncoding.Unicode.GetString(bt);

            objEDZ.Name        = System.Text.UnicodeEncoding.Unicode.GetString(bt, 0, 30).Trim();
            objEDZ.Sex_Code    = System.Text.UnicodeEncoding.Unicode.GetString(bt, 30, 2).Trim();
            objEDZ.NATION_Code = System.Text.UnicodeEncoding.Unicode.GetString(bt, 32, 4).Trim();
            string strBird = System.Text.UnicodeEncoding.Unicode.GetString(bt, 36, 16).Trim();

            objEDZ.BIRTH   = Convert.ToDateTime(strBird.Substring(0, 4) + "年" + strBird.Substring(4, 2) + "月" + strBird.Substring(6) + "日");
            objEDZ.ADDRESS = System.Text.UnicodeEncoding.Unicode.GetString(bt, 52, 70).Trim();
            objEDZ.IDC     = System.Text.UnicodeEncoding.Unicode.GetString(bt, 122, 36).Trim();
            objEDZ.REGORG  = System.Text.UnicodeEncoding.Unicode.GetString(bt, 158, 30).Trim();
            string strTem = System.Text.UnicodeEncoding.Unicode.GetString(bt, 188, bt.GetLength(0) - 188).Trim();

            objEDZ.STARTDATE = Convert.ToDateTime(strTem.Substring(0, 4) + "年" + strTem.Substring(4, 2) + "月" + strTem.Substring(6, 2) + "日");
            strTem           = strTem.Substring(8);
            if (strTem.Trim() != "长期")
            {
                objEDZ.ENDDATE = Convert.ToDateTime(strTem.Substring(0, 4) + "年" + strTem.Substring(4, 2) + "月" + strTem.Substring(6, 2) + "日");
            }
            else
            {
                objEDZ.ENDDATE = DateTime.MaxValue;
            }
            objFile = new FileInfo("zp.bmp");
            if (objFile.Exists)
            {
                Image img = Image.FromFile("zp.bmp");
                objEDZ.PIC_Image = (Image)img.Clone();
                System.IO.MemoryStream m = new MemoryStream();
                img.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
                objEDZ.PIC_Byte = m.ToArray();
                img.Dispose();
                img = null;
            }

            // ReadICCardComplete(objEDZ);
            //System.Threading.Thread.Sleep(50);
            return(0);
        }