Foxtable(狐表)用户栏目专家坐堂 → [求助]如何在foxtable应用ID读卡器(已解决)


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

主题:[求助]如何在foxtable应用ID读卡器(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]如何在foxtable应用ID读卡器(已解决)  发帖心情 Post By:2015/1/9 15:58:00 [显示全部帖子]

本人近期购置荣士的USB接口的ID读卡器一台,如何将其应用到foxtable,请各位老师指教,谢谢。

附上读卡器的配套驱动和案例。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:usb接口id卡读卡器oem软件.part1.rar


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:usb接口id卡读卡器oem软件.part2.rar


[此贴子已经被作者于2015-1-10 15:22:47编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2015/1/9 18:37:00 [显示全部帖子]

谢谢甜老师的指导。
通过代码复制,现在可以通过点击窗口的按钮,弹出显示卡号的对话框。

全局代码如下:

Public Declare Function idr_read Lib "OUR_IDR.dll" (ByRef pserial As Byte) As Byte '读卡函数声明
Public Declare Function idr_beep Lib "OUR_IDR.dll" (ByVal xms As Long) As Byte
Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
idr_beep(50)
Dim status As Byte
Dim mypiccserial(4) As Byte '卡序列号
status = idr_read(mypiccserial(0))
If status = 0 Then
    MessageBox.Show("操作成功卡号为" + Convert.ToString(mypiccserial(1) * 256 * 256 * 256 + mypiccserial(2) * 256 * 256 + mypiccserial(3) * 256 + mypiccserial(4)))
ElseIf status = 8 Then
    MessageBox.Show("请将卡放在感应区")
ElseIf status = 23 Then
    MessageBox.Show("机器没连上,或驱动程序未安装!")
Else
    MessageBox.Show("异常")
End If
End Sub


窗口的AfterLoad事件代码如下(窗口自动生成按钮):

Dim ct As New Windows.Forms.Button
ct.Text = "我的按钮"
e.Form.Panel.Controls.Add(ct)
AddHandler ct.Click, AddressOf Button1_Click


如果要求刷卡后,将卡号直接输入到窗口的TextBox1文本框,代码应该如何修改,请各位老师指教,谢谢!!

[此贴子已经被作者于2015-1-9 18:37:52编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2015/1/10 8:57:00 [显示全部帖子]

请Bin老师帮助看看,如何修改代码实现上述要求,谢谢!!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2015/1/10 9:57:00 [显示全部帖子]


全局代码:
Public Declare Function idr_read Lib "OUR_IDR.dll" (ByRef pserial As Byte) As Byte '读卡函数声明
Public Declare Function idr_beep Lib "OUR_IDR.dll" (ByVal xms As Long) As Byte '驱动蜂鸣器函数声明
Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
idr_beep(50) '2毫秒*50
Dim status As Byte
Dim mypiccserial(4) As Byte '卡序列号
status = idr_read(mypiccserial(0))
If status = 0 Then
    Dim aa As Integer = (Convert.ToString(mypiccserial(1) * 256 * 256 * 256 + mypiccserial(2) * 256 * 256 + mypiccserial(3) * 256 + mypiccserial(4)))
    Dim bb As Integer = (aa Mod 256 * 256) + (INT(aa /(256 * 256)) Mod 256) * 100000
    MessageBox.Show( Format(bb,"00000000"))
ElseIf status = 8 Then
    MessageBox.Show("请将卡放在感应区")
ElseIf status = 23 Then
    MessageBox.Show("机器没连上,或驱动程序未安装!")
Else
    MessageBox.Show("异常")
End If
End Sub

窗口的AfterLoad事件代码
Dim ct As New Windows.Forms.Button
ct.Text = "我的按钮"
e.Form.Panel.Controls.Add(ct)
AddHandler ct.Click, AddressOf Button1_Click

刚才问了荣士的客服,他建议做一个循环,隔0.2秒调用一次读卡函数,可以不用点击按钮读卡,问题是这个循环如何做,请老师指教,谢谢!!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2015/1/10 10:07:00 [显示全部帖子]

谢谢Bin老师的指教!!我试试看,谢谢!!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2015/1/10 15:09:00 [显示全部帖子]


全局代码:
Public Sub ABC(ByVal sender As System.Object, ByVal e As System.EventArgs)
    读卡代码
End Sub

窗口的AfterLoad事件代码:
Dim but As WinForm.Button = e.Form.Controls("Button1")
AddHandler but.BaseControl.Click, AddressOf ABC

要求只通过拍卡(不点击按钮),直接读取卡号,窗口的TimerClick事件代码应该如何写?
或者用什么代码,在命令窗口执行,可以读取卡号,请各位老师指教,谢谢!



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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2015/1/10 15:22:00 [显示全部帖子]

谢谢Bin老师,问题解决了,再次衷心感谢!!

 回到顶部