using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Reflection; using System.Runtime.InteropServices; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ShenTun.IcCard.Common; namespace ShenTun.IcCard.Instance { /// /// 研腾、深圳华视CVR100 /// public class YT100 { [DllImport(@"YT100\termb.dll")] public static extern int InitComm(int port);//连接身份证阅读器 [DllImport(@"YT100\termb.dll")] public static extern int CloseComm();//断开与身份证阅读器连接 [DllImport(@"YT100\termb.dll")] public static extern int Authenticate();//判断是否有放卡,且是否身份证 [DllImport(@"YT100\termb.dll")] public static extern int Read_Content(int index);//读卡操作,信息文件存储在dll所在下 [DllImport(@"YT100\termb.dll")] public static extern int GetPeopleName(StringBuilder data, int cbData);//获取姓名 [DllImport(@"YT100\termb.dll")] public static extern int GetPeopleSex(StringBuilder data, int cbData);//获取性别 [DllImport(@"YT100\termb.dll")] public static extern int GetPeopleNation(StringBuilder data, int cbData);//获取民族 //[DllImport(@"YT100\termb.dll")] //public static extern int GetNationCode(StringBuilder data, int cbData);//获取民族代码 [DllImport(@"YT100\termb.dll")] public static extern int GetPeopleBirthday(StringBuilder data, int cbData);//获取生日(YYYYMMDD) [DllImport(@"YT100\termb.dll")] public static extern int GetPeopleAddress(StringBuilder data, int cbData);//获取地址 [DllImport(@"YT100\termb.dll")] public static extern int GetPeopleIDCode(StringBuilder data, int cbData);//获取身份证号 [DllImport(@"YT100\termb.dll")] public static extern int GetDepartment(StringBuilder data, int cbData);//获取签发机关 [DllImport(@"YT100\termb.dll")] public static extern int GetStartDate(StringBuilder data, int cbData);//获取有效期起始日期(YYYYMMDD) [DllImport(@"YT100\termb.dll")] static extern int GetEndDate(StringBuilder data, int cbData);//获取有效期截止日期(YYYYMMDD) static int cbDataSize=300; public static string GetName() { StringBuilder sb = new StringBuilder(cbDataSize); GetPeopleName(sb, cbDataSize); return sb.ToString(); } public static string GetSex() { StringBuilder sb = new StringBuilder(cbDataSize); GetPeopleSex(sb, cbDataSize); return sb.ToString(); } public static string GetIDCode() { StringBuilder sb = new StringBuilder(cbDataSize); GetPeopleIDCode(sb, cbDataSize); return sb.ToString(); } public static string GetBirthday() { StringBuilder sb = new StringBuilder(cbDataSize); GetPeopleBirthday(sb, cbDataSize); string birthday = string.Format("{0}-{1}-{2}", sb.ToString().Substring(0, 4), sb.ToString().Substring(4, 2), sb.ToString().Substring(6, 2)); return birthday; } public static string GetAddress() { StringBuilder sb = new StringBuilder(cbDataSize); GetPeopleAddress(sb, cbDataSize); return sb.ToString(); } public static string GetNation() { StringBuilder sb = new StringBuilder(cbDataSize); GetPeopleNation(sb, cbDataSize); return sb.ToString(); } public static string GetStartDateIC() { StringBuilder sb = new StringBuilder(cbDataSize); GetStartDate(sb, cbDataSize); string date = string.Format("{0}-{1}-{2}", sb.ToString().Substring(0, 4), sb.ToString().Substring(4, 2), sb.ToString().Substring(6, 2)); return date; } public static string GetEndDateIC() { StringBuilder sb = new StringBuilder(cbDataSize); GetEndDate(sb, cbDataSize); string date = string.Format("{0}-{1}-{2}", sb.ToString().Substring(0, 4), sb.ToString().Substring(4, 2), sb.ToString().Substring(6, 2)); return date; } public static string GetDepartmentIC() { StringBuilder sb=new StringBuilder(cbDataSize); GetDepartment(sb, cbDataSize); return sb.ToString(); } public static string GetPhoto() { //string path_current = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path_current = System.IO.Directory.GetCurrentDirectory(); string photo = "zp.bmp"; string file = string.Format("{0}\\{1}", path_current, photo); FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read); byte[] imageByte = new byte[file.Length]; BinaryReader br = new BinaryReader(fs); imageByte = br.ReadBytes(Convert.ToInt32(fs.Length)); MemoryStream ms = new MemoryStream(imageByte); Bitmap bm = new Bitmap(ms); string base64 = ImageHelper.ToBase64(bm, ImageFormat.Bmp); fs.Dispose(); ms.Dispose(); return base64; } } }