其他分享
首页 > 其他分享> > 基于键盘钩子实现扫码枪输入

基于键盘钩子实现扫码枪输入

作者:互联网

基于键盘钩子实现扫码枪输入

基于键盘钩子实现扫码枪输入

dotNet工控上位机 dotNet工控上位机 已认证帐号  

钩子

钩子是操作系统消息处理的一种机制。通过钩子,应用程序可以安装一个钩子回调过程让系统调用,从而监视系统中的消息队列。在这些消息到达目标窗口之前对这些消息进行处理。

特点

函数

键盘钩子的使用是基于Windows自带的dll,Windows API中的所有函数都包含在dll中。

3个最重要的DLL是:

1)kernel32.dll : 包含用于管理内存、进程和线程的各个函数

2)User32.dll : 包含用于执行用户界面任务的(如窗口创建和消息传送)的各个函数

3)GDI32.dll : 包含用于画图和现实文本的各个函数

使用

之所以要使用键盘钩子,主要是工业上有很多扫码枪是通过获取焦点,自动扫码的。但是如果想要实现无焦点输入,就需要使用键盘钩子,将键盘钩子的代码封装成了一个类,这样使用就非常简单了,使用代码如下:

1、创建钩子对象

  private ScanerHook listener = new ScanerHook();

2、钩子创建及卸载

            //创建钩子
            listener.Start();
            //钩子事件
            listener.ScanerEvent += Listener_ScanerEvent;    
            //窗体关闭后,卸载钩子
            this.FormClosed += (sender, e) =>
              {
                  listener.Stop();
              };

3、获取条码

        private void Listener_ScanerEvent(ScanerHook.ScanerCodes codes)
        {
            this.txt_Info.Text = codes.Result;
        }

实现

编辑于 2021-10-15 08:45

标签:listener,扫码,函数,钩子,dll,键盘
来源: https://www.cnblogs.com/sexintercourse/p/16256735.html