关于一台机器运行两个身份证读卡器模块(总结)

因为业务需要,需要在机器上运行两个身份证读卡器,一个使用USB口,一个是用的串口需要严格区分。

程序中我用的是两个线程,也许会有别的更好的方法。

1、一开始发现两个读卡器用dll库文件是一样的,所以就统一放在了程序运行根目录下,结果发现程序运行起来后两个读卡器无法正常运行

  经过尝试,把两个读卡器对应的dll库分别放在文件夹里,然后采用绝对路径引用,比如

[DllImport(@"..\zhongkong\termb.dll", CallingConvention = CallingConvention.StdCall)]

2、至于具体如何进行读卡,可以参考身份证读卡器家的实例

3、关于wz.txt,zp.bmp文件

一开始因为参考文档中解释的是这些文件会自动生成程序根目录中,也就是可执行文件所在目录,所以并没有在意,结果测试过程中发现使用USB读卡的可以正常读取身份证号,而串口呢个却不能

经过不断测试发现,采用USB读卡的(我用的是神思),这些文件是生成在生成程序根目录,每次读卡可以正确刷新。而使用串口读卡的(中控)的文件是生成在dll文件所在的目录里,并没有在程序根目录里,所以解析的时候要注意一下引用路径。

        private void ZKsetName()
        {
            string filename =@"..\zhongkong\wz.txt";
            FileStream fs = new FileStream(filename, FileMode.Open);
            StreamReader sr = new StreamReader(fs, System.Text.Encoding.Unicode);
            string filecontent = sr.ReadToEnd();
            sr.Close();
            fs.Close();

            //解析身份证证号
            string strID = filecontent.Substring(61, 18);//IDNumber                     
            Shenfenzhenghao = strID;
        }

 

posted @ 2018-05-25 09:30  congcongdi  阅读(438)  评论(0编辑  收藏  举报