You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
5.4 KiB

1 month ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Drawing.Imaging;
  5. using System.Reflection;
  6. using System.Runtime.InteropServices;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. using ShenTun.IcCard.Common;
  13. namespace ShenTun.IcCard.Instance
  14. {
  15. /// <summary>
  16. /// 研腾、深圳华视CVR100
  17. /// </summary>
  18. public class YT100
  19. {
  20. [DllImport(@"YT100\termb.dll")]
  21. public static extern int InitComm(int port);//连接身份证阅读器
  22. [DllImport(@"YT100\termb.dll")]
  23. public static extern int CloseComm();//断开与身份证阅读器连接
  24. [DllImport(@"YT100\termb.dll")]
  25. public static extern int Authenticate();//判断是否有放卡,且是否身份证
  26. [DllImport(@"YT100\termb.dll")]
  27. public static extern int Read_Content(int index);//读卡操作,信息文件存储在dll所在下
  28. [DllImport(@"YT100\termb.dll")]
  29. public static extern int GetPeopleName(StringBuilder data, int cbData);//获取姓名
  30. [DllImport(@"YT100\termb.dll")]
  31. public static extern int GetPeopleSex(StringBuilder data, int cbData);//获取性别
  32. [DllImport(@"YT100\termb.dll")]
  33. public static extern int GetPeopleNation(StringBuilder data, int cbData);//获取民族
  34. //[DllImport(@"YT100\termb.dll")]
  35. //public static extern int GetNationCode(StringBuilder data, int cbData);//获取民族代码
  36. [DllImport(@"YT100\termb.dll")]
  37. public static extern int GetPeopleBirthday(StringBuilder data, int cbData);//获取生日(YYYYMMDD)
  38. [DllImport(@"YT100\termb.dll")]
  39. public static extern int GetPeopleAddress(StringBuilder data, int cbData);//获取地址
  40. [DllImport(@"YT100\termb.dll")]
  41. public static extern int GetPeopleIDCode(StringBuilder data, int cbData);//获取身份证号
  42. [DllImport(@"YT100\termb.dll")]
  43. public static extern int GetDepartment(StringBuilder data, int cbData);//获取签发机关
  44. [DllImport(@"YT100\termb.dll")]
  45. public static extern int GetStartDate(StringBuilder data, int cbData);//获取有效期起始日期(YYYYMMDD)
  46. [DllImport(@"YT100\termb.dll")]
  47. static extern int GetEndDate(StringBuilder data, int cbData);//获取有效期截止日期(YYYYMMDD)
  48. static int cbDataSize=300;
  49. public static string GetName()
  50. {
  51. StringBuilder sb = new StringBuilder(cbDataSize);
  52. GetPeopleName(sb, cbDataSize);
  53. return sb.ToString();
  54. }
  55. public static string GetSex()
  56. {
  57. StringBuilder sb = new StringBuilder(cbDataSize);
  58. GetPeopleSex(sb, cbDataSize);
  59. return sb.ToString();
  60. }
  61. public static string GetIDCode()
  62. {
  63. StringBuilder sb = new StringBuilder(cbDataSize);
  64. GetPeopleIDCode(sb, cbDataSize);
  65. return sb.ToString();
  66. }
  67. public static string GetBirthday()
  68. {
  69. StringBuilder sb = new StringBuilder(cbDataSize);
  70. GetPeopleBirthday(sb, cbDataSize);
  71. string birthday = string.Format("{0}-{1}-{2}", sb.ToString().Substring(0, 4), sb.ToString().Substring(4, 2), sb.ToString().Substring(6, 2));
  72. return birthday;
  73. }
  74. public static string GetAddress()
  75. {
  76. StringBuilder sb = new StringBuilder(cbDataSize);
  77. GetPeopleAddress(sb, cbDataSize);
  78. return sb.ToString();
  79. }
  80. public static string GetNation()
  81. {
  82. StringBuilder sb = new StringBuilder(cbDataSize);
  83. GetPeopleNation(sb, cbDataSize);
  84. return sb.ToString();
  85. }
  86. public static string GetStartDateIC()
  87. {
  88. StringBuilder sb = new StringBuilder(cbDataSize);
  89. GetStartDate(sb, cbDataSize);
  90. string date = string.Format("{0}-{1}-{2}", sb.ToString().Substring(0, 4), sb.ToString().Substring(4, 2), sb.ToString().Substring(6, 2));
  91. return date;
  92. }
  93. public static string GetEndDateIC()
  94. {
  95. StringBuilder sb = new StringBuilder(cbDataSize);
  96. GetEndDate(sb, cbDataSize);
  97. string date = string.Format("{0}-{1}-{2}", sb.ToString().Substring(0, 4), sb.ToString().Substring(4, 2), sb.ToString().Substring(6, 2));
  98. return date;
  99. }
  100. public static string GetDepartmentIC()
  101. {
  102. StringBuilder sb=new StringBuilder(cbDataSize);
  103. GetDepartment(sb, cbDataSize);
  104. return sb.ToString();
  105. }
  106. public static string GetPhoto()
  107. {
  108. //string path_current = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
  109. string path_current = System.IO.Directory.GetCurrentDirectory();
  110. string photo = "zp.bmp";
  111. string file = string.Format("{0}\\{1}", path_current, photo);
  112. FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
  113. byte[] imageByte = new byte[file.Length];
  114. BinaryReader br = new BinaryReader(fs);
  115. imageByte = br.ReadBytes(Convert.ToInt32(fs.Length));
  116. MemoryStream ms = new MemoryStream(imageByte);
  117. Bitmap bm = new Bitmap(ms);
  118. string base64 = ImageHelper.ToBase64(bm, ImageFormat.Bmp);
  119. fs.Dispose();
  120. ms.Dispose();
  121. return base64;
  122. }
  123. }
  124. }