在做一個讀身份證的程式,要求實作身份證放上去自動讀卡,如果放在上面不動則不讀取,如果拿走后再放上去,那么就重新讀,不知道怎么寫。這里有一個讀卡的類
public static RdCardModel ReadCard()
{
RdCardModel model = null;
string pcmd = Char.ConvertFromUtf32(0x41);
string result = Application.StartupPath+"\\" ;
int arg0 = 0;
int arg1 = 8811;
byte[] arg2 = { 0x02, 0x27, 0x00, 0x00 };
//初始化埠
int flg = ReadCardAPI64.UCommand1(pcmd, ref arg0, ref arg1, arg2);
//驗證卡
pcmd = Char.ConvertFromUtf32(0x43);
int flg2 = ReadCardAPI64.UCommand1(pcmd, ref arg0, ref arg1, arg2);
//讀卡
pcmd = Char.ConvertFromUtf32(0x46);
int flg3 = ReadCardAPI64.UCommand1(pcmd, ref arg0, ref arg1, Encoding.GetEncoding("GBK").GetBytes(result));
if (flg3 == 62171 || flg3 == 62172 || flg3 == 62173)
{
//讀取識別的身份證資訊,并保存到model物件中,方便使用
model = GetCardInfo();
}
//關閉連接
pcmd= Char.ConvertFromUtf32(0x42);
int closeFlag= ReadCardAPI64.UCommand1(pcmd, ref arg0, ref arg1, arg2);
return model;
}
是不是用TIMER屬性,寫在讀卡類里,還是寫在表單上?讀卡表單的部分陳述句如下
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender,EventArgs e)
{
timer1.Interval =30;//TIME方法寫在這里合適么?
}
private void timer1_Tick(object sender, EventArgs e) //TIME方法寫在這里合適么?
{
bool in64bit = (IntPtr.Size == 8);
RdCardModel model = null;
if (in64bit)
{
model = ReadCardInfo.ReadCard();
}
else
{
model = ReadCardInfo.ReadCard86();
}
if (model != null)
{
textBox2.Text = "";
string NA = string.Format(model.NAME);
textBox2.Text = NA;
textBox3.Text = "";
string SE = string.Format("{0}", model.SEX);
if (SE == "1")
SE = "男";
else
SE = "女";
textBox3.Text = SE;
}
}
}
uj5u.com熱心網友回復:
這個不應該直接按著廠商的檔案來嗎。。uj5u.com熱心網友回復:
這種一般要用執行緒監聽埠,轉載請註明出處,本文鏈接:https://www.uj5u.com/net/58422.html
標籤:C#
