他拿的是一个远距离的IC卡读卡器,他的这个设备通过计算机的键盘口与电脑相连.先在电脑上任意打开一种文本编辑器(只要是能接收键盘输入的就可以),然后每刷一次卡,
文本编辑器就会有一串数据写入.我想他刷一次卡就相当于我们从键盘输入一串数据.所以在文本编辑器里就会有数据写入.我现在的任务就是编写程序实时的捕捉传输入过来的数据.程序在运行的时候实时捕获数据,得到数据据后马上做出相应的反应.
我不可能在软件的主界面上放一个文本框来接收传输入过来的数据,那太难看了.最好是这串数据一来,马上付给一个变量然后处理起来就方便了.
大家有什么好的办法吗?请指教!!!!!!
文本编辑器就会有一串数据写入.我想他刷一次卡就相当于我们从键盘输入一串数据.所以在文本编辑器里就会有数据写入.我现在的任务就是编写程序实时的捕捉传输入过来的数据.程序在运行的时候实时捕获数据,得到数据据后马上做出相应的反应.
我不可能在软件的主界面上放一个文本框来接收传输入过来的数据,那太难看了.最好是这串数据一来,马上付给一个变量然后处理起来就方便了.
大家有什么好的办法吗?请指教!!!!!!
处理IRP.SYSTEMBUFFER里的数据应用程序通过DEVICEIOCTL与驱动通讯你这个东西最高层也需要在FS一层处理
到了应用层,处理就麻烦多了
光判断当前能够接受输入的活动窗口就很烦人
而且你说你任何字处理软件,那么应用层职能通过进程名来判断
难度可想而知
好像昨晚中国队机会很多,可是就是没有解决问题的射门(最后还好点球取胜)
大家如果有什么好方法,请说祥细点吧.
用串口通讯,我也想呀,可是我不知道键盘口是个什么口呀.有谁能告诉我用mscomm控件来监测哪个端口吗?(com1,com2,com3,com4??????).
倒是楼上说的有些道理,我在界面中每个可能成为焦点的控件中,都加一个keypress事件,做相应技术处理实现的可能性应该是比较大吧,我试试.
但我还是想寻求一个更好的办法.......
DDK的例子
自己也不看
就是要结果
用子类,处理WM_CHAR消息
多方便阿
不过要用其他语言写用来hook的dll
多数超市都是类似的刷卡器,你可以看到收银员专门打开一个窗口进行刷卡,重要的是她不会在刷卡过程中敲击键盘.
用的着那么麻烦嘛...
应该是挺简单的一个问题了~~~~~~~~~~
最简单的方法是写一个类,类里面有代码不断地扫描该端口,有数据进来即进行处理--别忘了在适当的地方加 doevents,否则你的程序会表现为好象死机了一样。
最佳是用事件触发,监测该端口,当该端口有数据进入时再触发你的处理程序,因为不断地扫描该端口要浪费不少 CPU 时间。可惜几年前的源代码找不到了,不然可以给你个现成的例子。
放一个TIMER,每0.5秒(甚至更短)将焦点置于文本框不就解决了焦点问题了吗?
然后在文本框的CHANGE事件中,接收到就检查其长度是否要接收信息的固定长度,不是就清空,是就处理然后清空.你说的远程倒有点意思,是怎么远程法?红外?蓝牙?