Foxtable(狐表)用户栏目专家坐堂 → 关于二代身份证读卡器的应用问题?


  共有16473人关注过本帖树形打印复制链接

主题:关于二代身份证读卡器的应用问题?

帅哥哟,离线,有人找我吗?
yjk1023
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/10/11 18:32:00 [只看该作者]

单位的网络是联通的  慢死了了,上传个东西都不行,再次上传开发说明,关于这种编程想请老大给科普一下知识,有好多东西都看不懂,最起码要想开发这样的程序都需要知道或者了解哪一方面的知识,以及在用foxtable开发时接口的设置,还有什么动态链接库的放在什么目录下,等等一些知识,再次恳请老大科普一下!


 回到顶部
帅哥哟,离线,有人找我吗?
yjk1023
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/10/11 18:34:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态库使用手册.zip

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:cvr100ud_dll库(v2.14)_0329.rar


 回到顶部
帅哥哟,离线,有人找我吗?
yjk1023
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/10/12 14:16:00 [只看该作者]

以下是引用狐狸爸爸在2011-10-11 9:29:00的发言:
全局代码:
 

Public Declare Function CVR_InitComm Lib "termb.dll" Alias "CVR_InitComm" (ByVal Port As Integer) As Integer
Public Declare Function CVR_Authenticate Lib "termb.dll" Alias "CVR_Authenticate" () As Integer
Public Declare Function CVR_Read_Content Lib "termb.dll" Alias "CVR_Read_Content" (ByVal Active As Integer) As Integer
Public Declare Function CVR_CloseComm Lib "termb.dll" Alias "CVR_CloseComm" () As Integer
Public Declare Function GetPeopleName Lib "termb.dll" Alias "GetPeopleName" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer
Public Declare Function GetPeopleNation Lib "termb.dll" Alias "GetPeopleNation" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer
Public Declare Function GetPeopleBirthday Lib "termb.dll" Alias "GetPeopleBirthday" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer
Public Declare Function GetPeopleAddress Lib "termb.dll" Alias "GetPeopleAddress" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer
Public Declare Function GetPeopleIDCode Lib "termb.dll" Alias "GetPeopleIDCode" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer
Public Declare Function GetDepartment Lib "termb.dll" Alias "GetDepartment" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer
Public Declare Function GetStartDate Lib "termb.dll" Alias "GetStartDate" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer
Public Declare Function GetEndDate Lib "termb.dll" Alias "GetEndDate" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer
Public Declare Function GetPeopleSex Lib "termb.dll" Alias "GetPeopleSex" (ByRef strTmp As Byte, ByRef strLen As Integer) As Integer

 Public name As StringBuilder
 Public sex As String
 Public people As String
 Public birthday As String
 Public address As String
 Public number As String
 Public signdate As String
 Public validtermOfStart As String
 Public validtermOfEnd As String
 
 
         <StructLayout(LayoutKind.Sequential, Size:=16, CharSet:=CharSet.Ansi)>  _
         Public Structure IDCARD_ALL
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=30)>  _
             Public name As Char
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=3)>  _
             Public sex As Char
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=4)>  _
             Public people As Char
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=16)>  _
             Public birthday As Char
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=70)>  _
             Public address As Char
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=36)>  _
             Public number As Char
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=30)>  _
             Public signdate As Char
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=16)>  _
             Public validtermOfStart As Char
             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=16)>  _
             Public validtermOfEnd As Char
         End Structure
 
 
Public Sub FillData()
Try
pictureBox1.ImageLocation = (Application.StartupPath + "\\zp.bmp")
Dim name() As Byte = New Byte((30) - 1) {}
Dim length As Integer = 30
CVRSDK.GetPeopleName(name(0), length)
'MessageBox.Show();
Dim number() As Byte = New Byte((30) - 1) {}
length = 36
CVRSDK.GetPeopleIDCode(number(0), length)
Dim people() As Byte = New Byte((30) - 1) {}
length = 3
CVRSDK.GetPeopleNation(people(0), length)
Dim validtermOfStart() As Byte = New Byte((30) - 1) {}
length = 16
CVRSDK.GetStartDate(validtermOfStart(0), length)
Dim birthday() As Byte = New Byte((30) - 1) {}
length = 16
CVRSDK.GetPeopleBirthday(birthday(0), length)
Dim address() As Byte = New Byte((30) - 1) {}
length = 70
CVRSDK.GetPeopleAddress(address(0), length)
Dim validtermOfEnd() As Byte = New Byte((30) - 1) {}
length = 16
CVRSDK.GetEndDate(validtermOfEnd(0), length)
Dim signdate() As Byte = New Byte((30) - 1) {}
length = 30
CVRSDK.GetDepartment(signdate(0), length)
Dim sex() As Byte = New Byte((30) - 1) {}
length = 3
CVRSDK.GetPeopleSex(sex(0), length)
lblAddress.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(address)
lblSex.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(sex)
lblBirthday.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(birthday)
lblDept.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(signdate)
lblIdCard.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(number)
lblName.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(name)
lblNation.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(people)
lblValidDate.Text = (System.Text.Encoding.GetEncoding("GB2312").GetString(validtermOfStart) + ("-" + System.Text.Encoding.GetEncoding("GB2312").GetString(validtermOfEnd)))
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub

public  iRetUSB As Integer = 0
public  isClose As Boolean = false
public iRetCOM As Integer = 0
 
窗口的AfterLoad事件:
 
 Try
Dim iPort As Integer
iPort = 1001
Do While (iPort <= 1016)
iRetUSB = CVRSDK.CVR_InitComm(iPort)
If (iRetUSB = 1) Then
Exit For
End If
iPort = (iPort + 1)
Loop
iPort = 1
Do While (iPort <= 4)
iRetCOM = CVRSDK.CVR_InitComm(iPort)
If (iRetCOM = 1) Then
Exit For
End If
iPort = (iPort + 1)
Loop
If ((iRetCOM = 1) _
OrElse (iRetUSB = 1)) Then
 messagebox.show ("初始化成功")
Else
 messagebox.show ("初始化失败")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try

窗口的BeforeClose事件:
 If Not isClose Then
Try
CVRSDK.CVR_CloseComm
Me.Close
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End If

 
读取按钮事件:
 
 Try
If ((iRetCOM = 1) _
OrElse (iRetUSB = 1)) Then
Dim authenticate As Integer = CVRSDK.CVR_Authenticate
If (authenticate = 1) Then
Dim readContent As Integer = CVRSDK.CVR_Read_Content(4)
If (readContent = 1) Then
    messagebox.show ("成功")
FillData
Else
 messagebox.show ("失败")
End If
Else
MessageBox.Show("没有卡", cn, ")")
End If
Else
'MessageBox.Show("初始化失败")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try


 把全局代码复制粘贴到实例中后出现以下错误:未声明名称:pictureBox1,错误代码:pictureBox1.ImageLocation = (Application.StartupPath + \\zp.bmp)
控件还没有生成呢,声明的公用函数FillData()是不是应该放在别的地方,请老大考虑考虑

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/12 14:42:00 [只看该作者]

自行调整,只是大概如此。

 回到顶部
帅哥哟,离线,有人找我吗?
yjk1023
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/10/12 17:55:00 [只看该作者]

全局代码 做了下修改

 

主要是去掉了'pictureBox1.ImageLocation = (Application.StartupPath + \\zp.bmp)
及'lblAddress.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(address)
'lblSex.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(sex)
'lblBirthday.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(birthday)
'lblDept.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(signdate)
'lblIdCard.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(number)
'lblName.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(name)
'lblNation.Text = System.Text.Encoding.GetEncoding("GB2312").GetString(people)
'lblValidDate.Text = (System.Text.Encoding.GetEncoding("GB2312").GetString(validtermOfStart) + ("-" + System.Text.Encoding.GetEncoding("GB2312").GetString(validtermOfEnd)))
全局代码编译成功,重新启动

但是 在窗口初始化代码中  代码有错误 退出循环 是exit do 改正后,设备初始化失败,

在命令窗口中 使用如下代码 查找设备 返回都是0

Dim iPort As Integer
Dim iRetUSB As Integer
iPort = 1001
Do While (iPort <= 1016)
iRetUSB = CVR_InitComm(iPort)
output.show(iRetUSB)
iPort = (iPort + 1)
Loop

这是什么原因呢 ?能给个解决的思路吗?

注:身份证读卡器自带的应用软件使用正常,在资源管理器中显示的位置是Port_#0001.Hub_#0001


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/12 18:07:00 [只看该作者]

呵呵,这东西,没有设备在手,没有办法帮你捉摸的,因为代码和思路都是现成的,我写和你写,都一样。

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/13 8:07:00 [只看该作者]

这玩意多钱?

有空我买一个玩玩。


 回到顶部
美女呀,离线,留言给我吧!
zhangyan123_123
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:33 积分:336 威望:0 精华:0 注册:2014/3/25 14:02:00
[求助]求华旭金卡(二代身份证读卡器)开发代码  发帖心情 Post By:2014/6/12 13:41:00 [只看该作者]

我公司刚买了一个华旭金卡(二代身份证读卡器),如何使用,能给个开发原代码吗?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/12 13:57:00 [只看该作者]

以下是引用zhangyan123_123在2014-6-12 13:41:00的发言:

我公司刚买了一个华旭金卡(二代身份证读卡器),如何使用,能给个开发原代码吗?

 

不同的读卡器使用是不一样的。去叫商家给vb.net的开发代码

 

http://www.foxtable.com/help/topics/2417.htm

 


 回到顶部
美女呀,离线,留言给我吧!
zhangyan123_123
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:33 积分:336 威望:0 精华:0 注册:2014/3/25 14:02:00
  发帖心情 Post By:2014/6/12 14:19:00 [只看该作者]

实际上你说的例子是读卡器已读到硬盘,程序只是解析了一下,但我希望直接用函数读,在显示在界面

 回到顶部
总数 32 上一页 1 2 3 4 下一页