新手求助,用C#做了个winform程序,现在要实现读卡器刷卡功能,不知道如何下手了。求各位高手帮忙

tieshou009 2011-05-31 12:00:05
如题,做了个winform应用程序,会员信息管理用的。有几个窗体。现在要实现会员刷卡功能,要求是刷卡之后读取卡号,查询数据库,看看是不是存有该会员信息。
现在有厂商提供的两个动态函数库和使用说明,不知道怎么后台监视读卡器和调用动态函数库。希望各位高手指点一下。
...全文
976 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsf007 2011-11-11
  • 打赏
  • 举报
回复
goodgoodstudydaydayup
mjp1234airen4385 2011-05-31
  • 打赏
  • 举报
回复
厂家都给你函数,你就直接调用函数就行了。
不用hook什么的东西了。
可以考虑timer或线程的方法
lpingz 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 tieshou009 的回复:]
如题,做了个winform应用程序,...
不知道怎么后台监视读卡器和调用动态函数库。希望各位高手指点一下。
[/Quote]

用timer
ghost5216 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tieshou009 的回复:]
我的读卡器是usb的,跟你说的一样。
我现在就是要捕获卡片的卡号,要使用hook么?
[/Quote]
放个TextBox控件
打开设备(dll函数)
让TextBox控件获得焦点、光标
刷下卡试试,看看能不能读到卡号(前提是你的卡写过了,里面有号,有些厂商提供写卡程序,有些提供DLL)

不用HOOK
重写窗体类的
protected override void WndProc(ref Message m)
{
if (m.Msg == //判断字符消息)
{
//你的处理
//要短小精悍 不要阻塞
}
base.WndProc(ref m);
}
tieshou009 2011-05-31
  • 打赏
  • 举报
回复
我的读卡器是usb的,跟你说的一样。
我现在就是要捕获卡片的卡号,要使用hook么?
tieshou009 2011-05-31
  • 打赏
  • 举报
回复
谢谢各位大大的回答,我发现这个读卡器在读卡的时候,不仅会把卡号写入文本框还会触发窗体的acceptbutton的click事件,我就用这个特点去做了。笨人就用笨方法了。再次谢谢各位的回答!
小赖赖 2011-05-31
  • 打赏
  • 举报
回复
建工程时引入动态链接库
里面应该会提供刷卡事件的委托
刷卡事件+=xxxx;

xxxx函数自己写
  • 打赏
  • 举报
回复
是不是要写个USB驱动呢?有个libusb可以看一下。
garfieldzf 2011-05-31
  • 打赏
  • 举报
回复
US 应该你放个Textbox就可以捕获到卡号了,

如果不是, 那就好好看一下厂家API。
ghost5216 2011-05-31
  • 打赏
  • 举报
回复
这要看你厂商提供的开发包是什么样的

我以前用过一款读卡器,那种插PS2口的,使用起来像键盘,光标在TEXTBOX中时,刷卡会直接把卡号键入TEXTBOX,而且带回车。

不知道你用的读卡器什么样,这两个函数可能只是打开和关闭。也许你只需要捕捉消息。重写private override void WndPro(...)试试。
patrickpan 2011-05-31
  • 打赏
  • 举报
回复
研究厂商提供的两个动态函数库和使用说明,看是否支持托管,如果不支持,用 DLLimport映射成 C#方法.
开一个线程,不停地读卡...,读到以后再处理.

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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