当卡靠近读卡器时,自动读卡,求思路

ningweidong 2011-10-20 02:55:19
我现在可以用读卡器读卡。
但都是卡放好以后,一按读卡按钮,就读卡了
我现在想实现当卡靠近读卡器的时候,就开始读卡
我有两个思路,一个是用一个计时器,隔一段时间就运行读卡程序,但是如果别人把卡一直放在读卡器上,就会一直读
还有一个思路是在一个死循环中用doevents函数
请问一下,哪个思路更好一些?有没有别的思路?
...全文
205 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
luobaoline 2011-10-20
  • 打赏
  • 举报
回复
读到之后做判断啊。读到了就不再读了。
熊孩子开学喽 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 ningweidong 的回复:]
我现在可以用读卡器读卡。
但都是卡放好以后,一按读卡按钮,就读卡了
我现在想实现当卡靠近读卡器的时候,就开始读卡
我有两个思路,一个是用一个计时器,隔一段时间就运行读卡程序,但是如果别人把卡一直放在读卡器上,就会一直读
还有一个思路是在一个死循环中用doevents函数
请问一下,哪个思路更好一些?有没有别的思路?
[/Quote]

你先确定这个读卡器不按那个"读卡按钮"也能读卡么?
贝隆 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wallescai 的回复:]
楼主是萠猫, 楼上是奸猫咧.
[/Quote]
这是我收养的一只流浪猫。
贝隆 2011-10-20
  • 打赏
  • 举报
回复
就如何解决一直读卡的问题,我觉得没有必要处理,它读就一直让他读吧,反正读不坏东西,呵呵
熊孩子开学喽 2011-10-20
  • 打赏
  • 举报
回复
楼主是萠猫, 楼上是奸猫咧.
贝隆 2011-10-20
  • 打赏
  • 举报
回复
哦,楼主也是一只猫.....
贝隆 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wallescai 的回复:]
我看猫来了.
[/Quote]
我有神马好看的?
贝隆 2011-10-20
  • 打赏
  • 举报
回复
上面只是一种思路而已,具体还得结合你的读卡器的通信协议来做。
熊孩子开学喽 2011-10-20
  • 打赏
  • 举报
回复
我看猫来了.
贝隆 2011-10-20
  • 打赏
  • 举报
回复

Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
Timer1.Interval = 500
End Sub

Private Sub Timer1_Timer()
Dim bolReadSuccess As Boolean '读卡成功
Dim lngP As Long
Dim strReadMemo As String
MSComm1.InputLen = 0
MSComm1.InBufferCount = 0
MSComm1.Output = "读卡命令"
Sleep 20 '等待20ms,通常情况下,如果正常读卡,MScomm控件的读入缓冲区就会有数据(不为空)
If MSComm1.InBufferCount = 0 Then Exit Sub
'当接收到了数据时执行下面的语句
lngP = GetTickCount '记录通信等待起始时间
bolReadSuccess = False
Do
DoEvents
If MSComm1.InBufferCount >= 10 Then
bolReadSuccess = True '此处判断是否读卡成功,你可根据你的实际情况编写
End If
Loop Until bolReadSuccess Or GetTickCount - lngP > 80
strReadMemo = MSComm1.Input '读入内容
End Sub
贝隆 2011-10-20
  • 打赏
  • 举报
回复
我觉得使用Timer发送读卡命令好些

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧