winfrom钩子实现无焦点扫码输入条码获取-最容易看懂的Demo

 在网上找了很长时间,都没有很简单的能看懂的Demo,因为工作需要,我自己完成一个简单的Demo,保证傻瓜都能看懂。

 

  1. 钩子类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace ScanDemo
{
    class BarCodeHook
    {
        public delegate void BarCodeDelegate(BarCodes barCode);
        public event BarCodeDelegate BarCodeEvent;

        public struct BarCodes
        {
            public int VirtKey;      //虚拟码  
            public int ScanCode;     //扫描码  
            public string BarCode;   //条码信息  
            public bool IsValid;     //条码是否有效  
            public DateTime Time;    //扫描时间  
        }

        private struct EventMsg  //事件信息
        {
            public int message;
            public int paramL;
            public int paramH;
            public int Time;
            public int hwnd;
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要将这个功能打包成可用的类库,并在WinForms应用程序中调用,您可以按照以下步骤进行操作: 1. 创建一个新的C#类库项目: - 在Visual Studio中,选择 "文件" -> "新建" -> "项目"。 - 在 "创建新项目" 窗口中,选择 "类库 (.NET Framework)"。 - 为项目指定名称和位置,然后单击 "确定"。 2. 将现有的扫码功能代码添加到类库项目中: - 将之前提供的康耐视扫码枪相关代码复制到类库项目中。 - 确保在类库项目中引用了 `System.IO.Ports` 命名空间。 3. 添加必要的引用: - 在解决方案资源管理器中,右键单击 "引用" -> "添加引用"。 - 在 "添加引用" 窗口中,选择所需的引用,例如 `System` 和 `System.IO.Ports`。 - 单击 "确定" 完成引用添加。 4. 对外暴露一个方法来启动扫码并返回结果: - 在类库项目中添加一个公共方法,例如 `StartScanning`,该方法用于启动扫码并返回结果。 - 在该方法中,您可以实现扫码的逻辑,等待扫码并读取到条码后停止扫码,并将条码内容作为结果返回。 5. 生成类库项目: - 在Visual Studio中,选择 "生成" -> "生成解决方案"。 - 确保类库项目成功生成,并且没有错误。 6. 在WinForms应用程序中引用并调用类库: - 在WinForms应用程序项目中,右键单击 "引用" -> "添加引用"。 - 在 "添加引用" 窗口中,选择 "浏览" 选项卡,并浏览到类库项目生成的DLL文件。 - 单击 "确定" 完成引用添加。 7. 在WinForms应用程序中调用类库方法: - 在WinForms应用程序的代码文件中,使用 `using` 关键字引入类库的命名空间。 - 创建类库的实例对象,并调用 `StartScanning` 方法。 - 在返回结果后进行相应的处理,例如显示条码内容或执行其他逻辑。 注意:在调用扫码方法时,您可能需要考虑多线程或异步操作以避免UI线程被阻塞。您可以使用C#中的多线程或异步编程技术来实现这一点。 希望这些步骤能帮助您将扫码功能打包成可用的类库,并在WinForms应用程序中调用。如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值