以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何在foxtable应用ID读卡器(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62894) |
-- 作者:yyzlxc -- 发布时间:2015/1/9 15:58:00 -- [求助]如何在foxtable应用ID读卡器(已解决) 本人近期购置荣士的USB接口的ID读卡器一台,如何将其应用到foxtable,请各位老师指教,谢谢。 附上读卡器的配套驱动和案例。 [此贴子已经被作者于2015-1-10 15:22:47编辑过]
|
-- 作者:有点甜 -- 发布时间:2015/1/9 16:06:00 -- 你问过很多遍啦,运行vb.net的例子,看人家怎么写的啊。
然后拷贝代码到foxtable啊。
http://www.foxtable.com/help/topics/2417.htm
|
-- 作者:yyzlxc -- 发布时间: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 -- 发布时间:2015/1/10 8:57:00 -- 请Bin老师帮助看看,如何修改代码实现上述要求,谢谢!! |
-- 作者:Bin -- 发布时间:2015/1/10 9:06:00 -- 继续参考它提供的文档,复制代码 |
-- 作者:yyzlxc -- 发布时间: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秒调用一次读卡函数,可以不用点击按钮读卡,问题是这个循环如何做,请老师指教,谢谢!!
|
-- 作者:Bin -- 发布时间:2015/1/10 9:59:00 -- 把代码写到窗口的计时器. 计时器间隔设置为2000毫秒 |
-- 作者:yyzlxc -- 发布时间:2015/1/10 10:07:00 -- 谢谢Bin老师的指教!!我试试看,谢谢!! |
-- 作者:yyzlxc -- 发布时间: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事件代码应该如何写? 或者用什么代码,在命令窗口执行,可以读取卡号,请各位老师指教,谢谢! |
-- 作者:Bin -- 发布时间:2015/1/10 15:11:00 -- 把读取卡号的代码放到 TimerKick即可. |