这个简单的测试项目,界面上有个timer控件,设计的是3秒执行一下读取身份证的动作,目前想到的是这种循环方式,德卡T10这个机子,身份证放上去,不会自动去执行读取的操作。

1.界面

德卡T10读卡器 读取身份证号码和身份证UID

2.界面的代码 Form1.cs 如下

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Text;
 7 using System.Windows.Forms;
 8 using System.IO;
 9 using System.Threading;
10 
11 namespace IDCard
12 {
13     public partial class Form1 : Form
14     {
15         public static string StrCardNo = "1";   //记录下的 上次有效的身份证号
16         public Form1()
17         {
18             InitializeComponent();
19         }
20 
21         private void timer1_Tick(object sender, EventArgs e)
22         {
23             textBox8.Focus();
24             PersonInfo person = new PersonInfo();
25             int result = IDCard.GetCardInfo.getCardInfo(ref person);
26             if (result < 0)//未读取到身份证
27             {
28                 return;
29             }
30             string strCardNoThis="";    //本次读取到的身份证号
31             if (person.IdNumber == null)
32             {
33                 strCardNoThis = "";
34             }
35             else
36             {
37                 strCardNoThis = person.IdNumber;
38                 //如果记录的上次的有效号和 本次的号 一样,处理掉 不用
39                 if (StrCardNo.Equals(strCardNoThis))
40                 {
41                     return;
42                 }
43                 else  //如果和之前的不一样,赋值为最新
44                 {
45                     StrCardNo = strCardNoThis;
46                     textBox8.Text = strCardNoThis;
47                 }
48             }
49 
50             //显示读取到的身份证UID
51             if (person.UID == null || person.UID.Equals(""))
52             {
53                 textBox1.Text = "未读取到身份证UID";
54             }
55             else
56             {
57                 textBox1.Text = person.UID;
58             }
59         }
60     }
61 }
View Code

相关文章: