Esempio n. 1
0
        public void xzxIdCard()
        {
            byte[]                buffer      = new byte[4];
            byte[]                buffer2     = new byte[8];
            IDCardData            pIDCardData = new IDCardData();
            bool                  flag        = false;
            string                str         = "";
            int                   num         = Syn_OpenPort(this.usbPort);
            ReadIdentifyEventArgs e           = new ReadIdentifyEventArgs();

            if (num == 0)
            {
                if (num == 0)
                {
                    Syn_StartFindIDCard(this.usbPort, ref buffer[0], 0);
                    Syn_SelectIDCard(this.usbPort, ref buffer2[0], 0);
                    //Syn_SetNationType(2);
                    num = Syn_ReadMsg(this.usbPort, 0, ref pIDCardData);
                    if (num == 0)
                    {
                        DateTime time2;
                        string   str7;
                        new RecordsBaseInfoModel();
                        DateTime today  = DateTime.Today;
                        string   nation = "";
                        PadForm.idNo = pIDCardData.IDCardNo.Trim();
                        string name     = pIDCardData.Name.Trim();
                        string iDCardNo = pIDCardData.IDCardNo.Trim();
                        string sex      = pIDCardData.Sex.Trim();
                        string address  = pIDCardData.Address.Trim();

                        if ((pIDCardData.Born.Length == 8) && DateTime.TryParse(pIDCardData.Born.Substring(0, 4) + "-" + pIDCardData.Born.Substring(4, 2) + "-" + pIDCardData.Born.Substring(6, 2), out time2))
                        {
                            today = time2;
                        }

                        if (pIDCardData.Nation == "汉族")
                        {
                            str7 = "1";
                        }
                        else
                        {
                            str7   = "2";
                            nation = GetNation(pIDCardData.Nation);
                        }

                        this.StopRead();
                        e.Name       = name;
                        e.Idcard     = iDCardNo;
                        e.Addr       = address;
                        e.Birthday   = today;
                        e.Nation     = str7;
                        e.Sex        = sex;
                        e.Minority   = nation;
                        e.ReadResult = 0;
                        flag         = true;
                    }
                    else
                    {
                        flag = false;
                    }
                }
            }
            else
            {
                str = "身份证读卡器端口打开失败:";
            }
            if ((str != "") || !flag)
            {
                if (str != "")
                {
                    e.ReadResult = -1;
                    e.ErrorInfo  = str + num;
                }
            }
            else
            {
                this.StopRead();
            }
            if (base.readCardEvent == null)
            {
                throw new Exception("readCardEvent 为NULL");
            }
            base.readCardEvent(this, e);
        }
Esempio n. 2
0
        public void shsIdCard()
        {
            byte abuf = 0x43;
            int  num2 = 0;
            int  num3 = 0x226b;
            int  num4 = 0x2702;
            ReadIdentifyEventArgs e       = new ReadIdentifyEventArgs();
            UCommand1             command = (UCommand1)DLLWrapper.GetFunctionAddress(this.hModule, "UCommand1", typeof(UCommand1));
            int num5 = command(ref abuf, ref num2, ref num3, ref num4);

            if (num5 == 0xf2db)
            {
                new RecordsBaseInfoModel();
                byte num6 = 0x44;
                int  num7 = command(ref num6, ref num2, ref num3, ref num4);
                if (num7 == 0xf2db)
                {
                    string str9;
                    byte[] buffer = new byte[0x24];
                    ((GetIDNum)DLLWrapper.GetFunctionAddress(this.hModule, "GetIDNum", typeof(GetIDNum)))(buffer);
                    string   str      = Encoding.Default.GetString(buffer).Trim(new char[1]).Trim();
                    DateTime today    = DateTime.Today;
                    string   str2     = "";
                    byte[]   namebyte = new byte[30];
                    ((GetName)DLLWrapper.GetFunctionAddress(this.hModule, "GetName", typeof(GetName)))(namebyte);
                    string str3    = Encoding.Default.GetString(namebyte).Trim(new char[1]).Trim().TrimEnd(new char[1]);
                    byte[] sexbyte = new byte[2];
                    ((GetSex)DLLWrapper.GetFunctionAddress(this.hModule, "GetSexGB", typeof(GetSex)))(sexbyte);
                    string str4    = Encoding.Default.GetString(sexbyte).Trim(new char[1]).Trim();
                    string str5    = !(str4 == "男") ? (!(str4 == "女") ? "0" : "2") : "1";
                    byte[] addbyte = new byte[70];
                    ((GetAddr)DLLWrapper.GetFunctionAddress(this.hModule, "GetAddr", typeof(GetAddr)))(addbyte);
                    string str6      = Encoding.Default.GetString(addbyte).Trim(new char[1]).Trim().TrimEnd(new char[1]);
                    byte[] birthbyte = new byte[0x10];
                    ((GetBirth)DLLWrapper.GetFunctionAddress(this.hModule, "GetBirth", typeof(GetBirth)))(birthbyte);
                    string str7 = Encoding.GetEncoding("gb2312").GetString(birthbyte).Trim(new char[1]).Trim();
                    bool   flag = true;
                    if (!DateTime.TryParse(str7.Trim().Insert(4, "-").Insert(7, "-").Trim(), out today))
                    {
                        flag = false;
                    }
                    byte[] folkbyte = new byte[0x10];
                    ((GetFolk)DLLWrapper.GetFunctionAddress(this.hModule, "GetFolkGB", typeof(GetFolk)))(folkbyte);
                    string str8 = Encoding.Default.GetString(folkbyte).ToString().Trim(new char[1]).Trim().TrimEnd(new char[1]);
                    if (str8 == "汉族")
                    {
                        str9 = "1";
                    }
                    else
                    {
                        str2 = str8;
                        str9 = "2";
                    }
                    byte[] newAddr = new byte[70];
                    ((GetNewAddr)DLLWrapper.GetFunctionAddress(this.hModule, "GetNewAddr", typeof(GetNewAddr)))(newAddr);
                    Encoding.Default.GetString(newAddr).Trim(new char[1]).Trim();
                    e.Name       = str3.Trim();
                    e.Idcard     = str;
                    e.Addr       = str6.Trim();
                    e.Birthday   = today;
                    e.Nation     = str9.Trim();
                    e.Sex        = str5;
                    e.Minority   = str2.Trim();
                    e.ReadResult = 0;
                    if (string.IsNullOrEmpty(e.Idcard))
                    {
                        e.ErrorInfo  = "读取身份证号码为空!";
                        e.ReadResult = -4;
                    }
                    if (string.IsNullOrEmpty(e.Name))
                    {
                        ReadIdentifyEventArgs args2 = e;
                        string str10 = args2.ErrorInfo + "读取身份证姓名为空!";
                        args2.ErrorInfo = str10;
                        e.ReadResult    = -4;
                    }
                    if (!flag)
                    {
                        ReadIdentifyEventArgs args3 = e;
                        string str11 = args3.ErrorInfo + "获取身份证生日失败!";
                        args3.ErrorInfo = str11;
                        e.ReadResult    = -4;
                    }
                    if (string.IsNullOrEmpty(e.Nation))
                    {
                        ReadIdentifyEventArgs args4 = e;
                        string str12 = args4.ErrorInfo + "获取身份证民族失败!";
                        args4.ErrorInfo = str12;
                        e.ReadResult    = -4;
                    }
                    if (string.IsNullOrEmpty(e.Sex))
                    {
                        ReadIdentifyEventArgs args5 = e;
                        string str13 = args5.ErrorInfo + "获取身份证性别失败!";
                        args5.ErrorInfo = str13;
                        e.ReadResult    = -4;
                    }
                    if (e.ReadResult == 0)
                    {
                        this.StopRead();
                    }
                }
                else
                {
                    this.timerReadCard.Enabled = false;
                    e.ReadResult = -2;
                    if (this.readCount > 50)
                    {
                        e.ReadResult   = -1;
                        e.ErrorInfo    = "身份证信息读取错误,关闭程序重新读取:" + num7;
                        this.readCount = 0;
                    }
                    this.readCount++;
                    this.timerReadCard.Enabled = true;
                }
                if (base.readCardEvent == null)
                {
                    throw new Exception("readCardEvent 为NULL");
                }
                base.readCardEvent(this, e);
            }
            else
            {
                e.ReadResult = -3;
                e.ErrorInfo  = "卡验证失败:" + num5;
            }
        }
Esempio n. 3
0
        public void mtxIDCard()
        {
            if (isRunType3)
            {
                return;
            }

            isRunType3 = true;

            Int16  st;
            int    icdev            = 0;
            string result           = null;
            ReadIdentifyEventArgs e = new ReadIdentifyEventArgs();

            try
            {
                int port = 0;//COM1
                int baud = 115200;

                icdev = ReadCardUtility.device_open(port, baud);
                if ((int)icdev > 0)
                {
                    //读取身份证信息*/
                    byte[] message = new byte[1024];

                    string bmpPath = @"D:\QCSoft\ZP.bmp";

                    byte[] photoPath = Encoding.Default.GetBytes(bmpPath);

                    st = ReadCardUtility.IDCard_ReadCard_Extra(icdev, photoPath, message);

                    result = Encoding.Default.GetString(message).TrimEnd('\0');

                    /* string bmpPath = @"D:\ZP.bmp";
                     * byte[] photoPath = Encoding.Default.GetBytes(bmpPath);
                     * st = mtx_32dll.IDCard_ReadCard_Extra(icdev, photoPath, message);
                     */

                    if (st == 0)
                    {
                        int      i;
                        string   name     = "";
                        string   iDCardNo = "";
                        string   sex      = "";
                        string   address  = "";
                        string   str7     = "";
                        string   nation   = "";
                        DateTime today    = DateTime.Today;

                        for (i = 0; i < 6; i++)
                        {
                            byte[] info     = new byte[1024];
                            string infodata = null;
                            st       = ReadCardUtility.IDCard_GetCardInfo(icdev, i, info);
                            infodata = Encoding.Default.GetString(info).TrimEnd('\0');

                            if (i == 0)
                            {
                                name = infodata;
                                continue;
                            }

                            if (i == 1)
                            {
                                sex = infodata == "男" ? "1" : "2";
                                continue;
                            }

                            if (i == 2)
                            {
                                if (infodata == "汉")
                                {
                                    str7 = "1";
                                }
                                else
                                {
                                    str7   = "2";
                                    nation = infodata.IndexOf("族") == -1 ? infodata + "族" : infodata;
                                }
                                continue;
                            }

                            if (i == 3)
                            {
                                today = DateTime.ParseExact(infodata, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);;
                                continue;
                            }
                            if (i == 4)
                            {
                                address = infodata;
                                continue;
                            }

                            if (i == 5)
                            {
                                iDCardNo = infodata;
                                continue;
                            }
                        }

                        e.Name       = name;
                        e.Idcard     = iDCardNo;
                        e.Addr       = address;
                        e.Birthday   = today;
                        e.Nation     = str7;
                        e.Sex        = sex;
                        e.Minority   = nation;
                        e.ReadResult = 0;

                        if (!Directory.Exists(PhotoPath))
                        {
                            Directory.CreateDirectory(PhotoPath);
                        }

                        string strNewPhoto = PhotoPath + "\\" + iDCardNo + ".Jpeg";
                        File.Copy(bmpPath, strNewPhoto, true);

                        this.StopRead();
                    }
                }
            }
            catch (Exception ex)
            {
            }

            if (icdev > 0)
            {
                ReadCardUtility.device_close(icdev);
            }

            isRunType3 = false;

            if (base.readCardEvent == null)
            {
                throw new Exception("readCardEvent 为NULL");
            }

            base.readCardEvent(this, e);
        }
Esempio n. 4
0
        public void shsIdCard()
        {
            byte abuf = 0x43;
            int  num2 = 0;
            int  num3 = 0x226b;
            int  num4 = 0x2702;
            ReadIdentifyEventArgs e = new ReadIdentifyEventArgs();
            int num5 = UCommand1(ref abuf, ref num2, ref num3, ref num4);

            if (num5 == 0xf2db)
            {
                new RecordsBaseInfoModel();
                byte num6 = 0x44;
                int  num7 = UCommand1(ref num6, ref num2, ref num3, ref num4);
                if (num7 == 0xf2db)
                {
                    string str8;
                    byte[] buffer = new byte[0x24];
                    GetIDNum(buffer);
                    string   str      = Encoding.Default.GetString(buffer);
                    DateTime today    = DateTime.Today;
                    string   str2     = "";
                    byte[]   namebyte = new byte[30];
                    GetName(namebyte);
                    string str3    = Encoding.Default.GetString(namebyte).TrimEnd(new char[1]);
                    byte[] sexbyte = new byte[2];
                    GetSex(sexbyte);
                    string str4    = Encoding.Default.GetString(sexbyte).Trim();
                    string str5    = !(str4 == "男") ? (!(str4 == "女") ? "0" : "2") : "1";
                    byte[] addbyte = new byte[70];
                    GetAddr(addbyte);
                    string str6      = Encoding.Default.GetString(addbyte).Trim().TrimEnd(new char[1]);
                    byte[] birthbyte = new byte[0x10];
                    GetBirth(birthbyte);
                    DateTime.TryParse(Encoding.Default.GetString(birthbyte).Trim(), out today);
                    byte[] folkbyte = new byte[30];
                    GetFolk(folkbyte);
                    string str7 = Encoding.Default.GetString(folkbyte).ToString().TrimEnd(new char[1]);
                    if (str7 == "汉族")
                    {
                        str8 = "1";
                    }
                    else
                    {
                        str2 = str7;
                        str8 = "2";
                    }
                    byte[] newAddr = new byte[70];
                    GetNewAddr(newAddr);
                    Encoding.Default.GetString(newAddr).Trim();
                    e.Name       = str3;
                    e.Idcard     = str;
                    e.Addr       = str6;
                    e.Birthday   = today;
                    e.Nation     = str8;
                    e.Sex        = str5;
                    e.Minority   = str2;
                    e.ReadResult = 0;
                    this.StopRead();
                }
                else
                {
                    this.timerReadCard.Enabled = false;
                    ErrorLog.WriterLog(num7.ToString());
                    if (this.readCount > 50)
                    {
                        e.ReadResult   = -1;
                        e.ErrorInfo    = "身份证信息读取错误,关闭程序重新读取:" + num7;
                        this.readCount = 0;
                    }
                    this.readCount++;
                    this.timerReadCard.Enabled = true;
                }
                if (base.readCardEvent == null)
                {
                    throw new Exception("readCardEvent 为NULL");
                }
                base.readCardEvent(this, e);
            }
            else
            {
                e.ReadResult = -2;
                e.ErrorInfo  = "卡验证失败:" + num5;
                if (base.readCardEvent != null)
                {
                    base.readCardEvent(this, e);
                }
            }
        }