gpt4 book ai didi

c# - USB 条码扫描仪和 WM_KEYDOWN

转载 作者:行者123 更新时间:2023-11-30 22:45:57 26 4
gpt4 key购买 nike

我正在尝试编写一个可以读取条码扫描仪的程序。此外,即使应用程序不是焦点窗口(即在系统托盘中运行等),我也需要它来读取输入。

我找到了这篇标题为 Distinguishing Barcode Scanners from the Keyboard in WinForms 的文章,这似乎解决了确切的问题。它工作得很好,它检测到我的设备并处理 WM_INPUT 消息。

但是,它正在检查 RAWINPUT.keyboard.Message 是否为 WM_KEYDOWN (0x100)。它似乎从来没有收到过这个。我在 article 中提供的代码中更改的唯一代码行正在添加 Console.Out.WriteLine 以输出该消息的实际值:

Console.Out.WriteLine("message: {0}", raw.keyboard.Message.ToString("X"));
if (raw.keyboard.Message == NativeMethods.WM_KEYDOWN)
{
....

这是它的输出:

message: B
message: 1000B
message: 3
message: 10003
message: 8
message: 10008
message: 3
message: 10003
message: 5
message: 10005
message: 3
message: 10003
message: 8
message: 10008
message: 8
message: 10008
message: 4
message: 10004
message: 9
message: 10009
message: 9
message: 10009
message: 3
message: 10003

正确完成后我期望收到的值是:

257232709

我通过扫描到记事本验证了这一点。

我不知道操作系统是否与此处相关,但我想我应该提到我在 Windows 7 64 和 Visual Studio 2010 以及 .NET Framework 3.5 中运行它。扫描器是 USB 条码扫描器,Symbol LS2208,设置为“HID KEYBOARD EMULATION”

最佳答案

只是想补充一点,microsoft POS.net 是 Microsoft 的一个免费库,用于构建服务点系统,它允许您读取最常见的条码扫描器,并在条码被扫描时为您提供一个事件。该库是免费的,并且得到了很好的支持,并且可以与任何具有 OPOS 驱动程序的条码扫描仪配合使用。

关于c# - USB 条码扫描仪和 WM_KEYDOWN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com