扫码枪扫描二维码后获取的信息怎么赋值到全局变量中,不需要在前端页面的获取焦点

zhu5152 2017-03-31 10:19:57
大概就是,用c#写一个程序,定义个全局变量,扫码之后获得二维码中的信息并赋值到全局变量之中,然后就可以用这个变量去做其他事了。但是没有前端文本框聚焦,直接扫码的!
...全文
1589 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhu5152 2017-04-26
  • 打赏
  • 举报
回复
引用 18 楼 skypeople 的回复:
正在搞 这个东西,可以用健盘钩子实现! http://blog.csdn.net/aiyongyyy/article/details/19679563 但是,又遇到一个问题,c#写的钩子回调函数出错时,进程会被操作系统直接关闭(估计是因为调用这个函数的是操作系统的线程,不受CLR异常处理机制控制),收不到任何消息,甚至捕捉例外的机会都没有。 程序偶尔会直接关掉而无任何提示,又找不到原因。请教哪位知道怎么捕捉回调函数中的异常??
为什么我的获取扫码信息的时候经常会获取不到完整的,偶尔能获取到完整的--。
yunqing1201 2017-04-13
  • 打赏
  • 举报
回复
那采用hook监控键盘事件就行啊,有键盘输入肯定就是条码枪扫描的数据了!
yunqing1201 2017-04-11
  • 打赏
  • 举报
回复
如果该电脑只用扫码,采用hook钩子监控键盘,如果还有别的用键盘,就很难区分是正常按键还是 扫描获得,建议采用通讯方式,不要用免驱键盘输出的方式!!!!
angel6709 2017-04-11
  • 打赏
  • 举报
回复
窜口啊。。。
zhu5152 2017-04-11
  • 打赏
  • 举报
回复
引用 19 楼 yunqing1201 的回复:
如果该电脑只用扫码,采用hook钩子监控键盘,如果还有别的用键盘,就很难区分是正常按键还是 扫描获得,建议采用通讯方式,不要用免驱键盘输出的方式!!!!
只有扫码,没有其他键盘输入
crystal_lz 2017-04-05
  • 打赏
  • 举报
回复
直接换扫描枪 拦截键盘不靠谱 不然你怎么区分 是你键盘按下的按键还是扫描枪的 还有就算是你获取到了一堆按键 你怎么对信息进行分段?你怎么区分 这一堆的按键信息里面 保存了一个信息?。。
sxczren 2017-04-05
  • 打赏
  • 举报
回复
其实不管是com口或者ps/2口或者U口的扫描枪原理都是一样的(U口的也是虚拟成com口),就是代替了键盘输入,结果都是输入一串数字或一串网址,后面自动跟一个回车。所以用跟踪键盘输入的方法跟踪扫描枪就行。
拜一刀 2017-04-05
  • 打赏
  • 举报
回复
引用 13 楼 zhu5152 的回复:
我在网上看到很多人都是用钩子程序来捕获键盘的输入,从而获得输入的值
没玩过,你可以搞搞试试全局监听网上应该能有例子吧http://download.csdn.net/detail/crystal_lz/4557082#comment
skypeople 2017-04-05
  • 打赏
  • 举报
回复
正在搞 这个东西,可以用健盘钩子实现! http://blog.csdn.net/aiyongyyy/article/details/19679563 但是,又遇到一个问题,c#写的钩子回调函数出错时,进程会被操作系统直接关闭(估计是因为调用这个函数的是操作系统的线程,不受CLR异常处理机制控制),收不到任何消息,甚至捕捉例外的机会都没有。 程序偶尔会直接关掉而无任何提示,又找不到原因。请教哪位知道怎么捕捉回调函数中的异常??
sxczren 2017-04-05
  • 打赏
  • 举报
回复
我不知道楼主开发的程序用在什么场景,一般需要扫描枪的地方都支持手动输入的,比如超市扫描商品条码,条码看不清的话是允许手动输入的,所以一个文本框还是必不可少的。即便是在一些无人值守的场景,通过程序的控制在扫描之前将焦点控制在文本框上也不是什么难事。
zhu5152 2017-04-01
  • 打赏
  • 举报
回复
引用 12 楼 zeratul1990 的回复:
[quote=引用 11 楼 zhu5152 的回复:] [quote=引用 10 楼 zeratul1990 的回复:] [quote=引用 9 楼 zhu5152 的回复:] [quote=引用 8 楼 zeratul1990 的回复:] 串口 扫码枪
然后 [/quote] 然后就研究下串口通讯,解析出来想怎么用怎么用 当然你得有串口,还得给扫码器接供电,不知道有没有usb模拟串口的扫码枪[/quote] 但是我的扫码枪是usb接口的[/quote] 看看说明书有没有串口模式 键盘模式我就不清楚了,你这个程序是在触摸屏之类的没键盘的环境吗?不会有误输入吗....另外把焦点的文本框藏起来呢?[/quote] 我在网上看到很多人都是用钩子程序来捕获键盘的输入,从而获得输入的值
拜一刀 2017-03-31
  • 打赏
  • 举报
回复
引用 11 楼 zhu5152 的回复:
[quote=引用 10 楼 zeratul1990 的回复:] [quote=引用 9 楼 zhu5152 的回复:] [quote=引用 8 楼 zeratul1990 的回复:] 串口 扫码枪
然后 [/quote] 然后就研究下串口通讯,解析出来想怎么用怎么用 当然你得有串口,还得给扫码器接供电,不知道有没有usb模拟串口的扫码枪[/quote] 但是我的扫码枪是usb接口的[/quote] 看看说明书有没有串口模式 键盘模式我就不清楚了,你这个程序是在触摸屏之类的没键盘的环境吗?不会有误输入吗....另外把焦点的文本框藏起来呢?
zhu5152 2017-03-31
  • 打赏
  • 举报
回复
引用 10 楼 zeratul1990 的回复:
[quote=引用 9 楼 zhu5152 的回复:] [quote=引用 8 楼 zeratul1990 的回复:] 串口 扫码枪
然后 [/quote] 然后就研究下串口通讯,解析出来想怎么用怎么用 当然你得有串口,还得给扫码器接供电,不知道有没有usb模拟串口的扫码枪[/quote] 但是我的扫码枪是usb接口的
拜一刀 2017-03-31
  • 打赏
  • 举报
回复
引用 9 楼 zhu5152 的回复:
[quote=引用 8 楼 zeratul1990 的回复:] 串口 扫码枪
然后 [/quote] 然后就研究下串口通讯,解析出来想怎么用怎么用 当然你得有串口,还得给扫码器接供电,不知道有没有usb模拟串口的扫码枪
zhu5152 2017-03-31
  • 打赏
  • 举报
回复
引用 8 楼 zeratul1990 的回复:
串口 扫码枪
然后
拜一刀 2017-03-31
  • 打赏
  • 举报
回复
串口 扫码枪
zhu5152 2017-03-31
  • 打赏
  • 举报
回复
引用 3 楼 diaodiaop 的回复:
如果你是这种枪 那么没办法.. 因为他相当于一个键盘 扫到东西的话会自动在焦点处输出. 但是你监听键盘事件 显然还不行....
我看到一个什么钩子程序,那个可以么?
zhu5152 2017-03-31
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
有个文本框难道很难吗? 假设用户打开一个页面就立刻扫描,那么它必定有个文本框。 假设用户在任意文本框上都要扫描,那么你的文本框应该支持快捷键、或者是关键字符(例如用字符$@#!来作为扫描内容的开始,用%^&*作为扫描内容的结束,在扫描设备上设置前后缀)。
我只要取到二维码中的信息,赋值到我的变量中,然后别人拿这个变量去用。
xdashewan 2017-03-31
  • 打赏
  • 举报
回复
按钮什么的控件只要能接收键盘事件的物件都可以用来接收,包括ProcessCmdKey,但如果聚焦在按钮上,要注意用ProcessCmdKey截获空格和回车,否者按钮就会被按下
  • 打赏
  • 举报
回复
有个文本框难道很难吗? 假设用户打开一个页面就立刻扫描,那么它必定有个文本框。 假设用户在任意文本框上都要扫描,那么你的文本框应该支持快捷键、或者是关键字符(例如用字符$@#!来作为扫描内容的开始,用%^&*作为扫描内容的结束,在扫描设备上设置前后缀)。
加载更多回复(3)

110,561

社区成员

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

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

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