现在做个程序,想自动监视键盘输入,以便进行处理(根据输入的信息进行查询等操作)
当键盘输入(刷卡时自动有6位数输入,并伴随一个回车键),判断是否需要处理的数据该怎么弄呢,谢谢!!

解决方案 »

  1.   

    你可以使用系统钩子,监视键盘信息
    SetWindowsHookEx,第一个参数为WH_KEYBOARD,具体做法可以去网上搜一下
    或者
    参考<Delphi下深入Windows核心编程>
      

  2.   

    好简单的,就捕捉onkeypress事件啊,不过要与普通的键盘输入区别开来,这时要对输入的字符做一个判断:
    是数字吗?不是的话就是普通录入,若是数字且是连续的6个数字,紧跟一个回车,就可认为是刷卡动作。这时就可得到一个卡号
      

  3.   


    楼主的理解有误,刷卡操作是在某个窗体才支持的。程序中有那么多窗体,需要刷卡的窗体却只有几个或一个。具体到这个窗体,如果你在键盘输入530000然后回车确认,它就被认定为一个卡号(没有刷卡器时就用这个办法测试程序),这是十分自然的事,不要认为不合情理。如果不是刷卡(包括测试),键盘会出现输入530000回车这样的巧合吗?当然如果你的刷卡窗体中恰巧有一个edit,这时候就要判断是form还是edit触发了keypress事件。是form触发的就认定为刷卡动作