zoukankan      html  css  js  c++  java
  • 身份证阅读器代码C#

     两个类:
    ReadIDCardService.CS

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
     
     
        public class ReadIDCardService
        {
     
            public IDCard ReadIDCard(int Port)
            {
                StringBuilder Name = new StringBuilder(31);
                StringBuilder Gender = new StringBuilder(3);
                StringBuilder Folk = new StringBuilder(10);
                StringBuilder BirthDay = new StringBuilder(9);
                StringBuilder Code = new StringBuilder(19);
                StringBuilder Address = new StringBuilder(71);
                StringBuilder Agency = new StringBuilder(31);
                StringBuilder ExpireStart = new StringBuilder(9);
                StringBuilder ExpireEnd = new StringBuilder(9);
     
                //初始化端口
                //int intOpenRet = InitComm(1001);
                //if (intOpenRet != 1)
                //{
                //    throw new Exception("");
                //}
     
                //设定当前操作的HID接口iDR210
                if (HIDSelect(Port))
                {
                    //卡认证
                    int intReadRet = Authenticate();
                    if (intReadRet != 1)
                    {
                        //CloseComm();
                        throw new Exception("");
                    }
     
                    //读身份证信息
                    int intReadBaseInfosRet = ReadBaseInfos(Name, Gender, Folk, BirthDay, Code, Address, Agency, ExpireStart, ExpireEnd);
                    if (intReadBaseInfosRet != -3)
                    {
                        //CloseComm();
                        throw new Exception("");
                    }
     
                    //HID_BeepLED(true,true, 200);
     
                    IDCard CardData = new IDCard();
                    CardData.CardNo = Code.ToString().Trim();
                    CardData.Name = Name.ToString().Trim();
                    CardData.Sex = Gender.ToString().Trim();
                    CardData.Nationality = Folk.ToString().Trim();
                    CardData.Birthday = BirthDay.ToString().Trim();
                    CardData.Address = Address.ToString().Trim();
                    CardData.Institution = Agency.ToString().Trim();
                    CardData.Begin_validity = ExpireStart.ToString().Trim();
                    CardData.End_validity = ExpireEnd.ToString().Trim();
                    CardData.PhotoDirectory = System.IO.Directory.GetCurrentDirectory() + "//photo.bmp";
     
                    //CloseComm();
                    return CardData;
                }
                else
                {
                    //CloseComm();
                    throw new Exception("");
                }
            }
     
            [DllImport("sdtapi.dll")]
            private static extern int InitComm(int Port);//初始化
            [DllImport("Sdtapi.dll")]
            private static extern int Authenticate();//卡认证
            [DllImport("sdtapi.dll")]
            private static extern void CloseComm(); //关闭端口
            [DllImport("sdtapi.dll")]
            private static extern int ReadBaseInfos(StringBuilder Name,
                StringBuilder Gender, StringBuilder Folk, StringBuilder BirthDay, StringBuilder Code, StringBuilder Address,
                StringBuilder Agency, StringBuilder ExpireStart, StringBuilder ExpireEnd);//读取数据
            [DllImport("sdtapi.dll")]
            private static extern int HID_BeepLED(bool BeepON, bool LEDON, int duration); //蜂鸣器
            [DllImport("sdtapi.dll")]
            private static extern bool HIDSelect(int index); //设定当前操作的HID接口iDR210
            [DllImport("sdtapi.dll")]
            private static extern int CardOn(); //判断身份证是否在设备上
     
     
        }
     
    ---------------------
    IDCard.CS
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
     
     
        public class IDCard
        {
            public string Name;//姓名 
            public string Sex;//性别 
            public string CardNo; //身份证号 
            public string Nationality; //民族 
            public string Birthday; //生日 
            public string Address;//家庭住址 
            public string Institution;//发证机关 
            public string Begin_validity;// 有效期开始 
            public string End_validity;//有效期结束 
            public string PhotoDirectory;//照片路径; 
        }

    --------------------------------------------
    调用:
     
      [DllImport("sdtapi.dll")]
      private static extern int InitComm(int Port);//初始化

    ///
      int intOpenRet = InitComm(1001);
                if (intOpenRet != 1)
                {
        //初始化失败
                  
                }
                try
                {
                    ReadIDCardService ReadIDCardService = new ReadIDCardService();
                    IDCard CardData = ReadIDCardService.ReadIDCard(1);
                    string sfz = CardData.CardNo;//这里可以获取读卡后的身份证信息
                   
                }
                catch (Exception ex)
                {
                    if (ex.Message != "")
            
                }
    QQ:83199235
  • 相关阅读:
    【机房收费系统】—— VB中 MSHFlexgrid控件导出Excel
    解决“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”
    手把手教你将Python程序打包为DLL
    电脑C盘(系统盘)怎么清理,以下6个方法你学会了么?
    win7旗舰版怎么降级到专业版|win7旗舰版改成专业版的方法
    UltraISO 软碟通注册码
    “永恒之蓝”处置流程
    C#连接 ORACLE,提示System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本
    RegAsm安装卸载办法
    解决Visual Studio:"无法导入以下密钥文件: xxxx.pfx,该密钥文件可能受密码保护"
  • 原文地址:https://www.cnblogs.com/softcg/p/6510984.html
Copyright © 2011-2022 走看看