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

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
{
/// <summary>
/// 研腾、深圳华视CVR100
/// </summary>
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;
}
}
}