1

我正在开发一个 Win CE 5 应用程序,该应用程序捕获通过条形码扫描仪扫描的数据。应用程序应该支持一些“系统条形码”,即触发应用程序功能的预定义条形码。

这些条形码必须在整个主机中工作。所以我将主机的“KeyPreview”属性设置为true,并在主机的KeyDown事件上注册了一个KeyEventHandler。

我的问题是,我不知道如何获取完整的扫描字符串。该字符串长度为 12 个字符,并以换行符结尾。是否有可能在 EventHandler 中获取整个字符串?

预先感谢您的任何帮助。

4

2 回答 2

0

大多数(如果不是全部的话)基于 Windows CE 的条形码扫描仪将扫描数据作为键盘数据注入到设备驱动程序中。在您的应用程序中拦截该数据的最简单方法是使用键盘挂钩,您不必将处理程序连接到每个表单并担心控件在处理逻辑之前获取键。它就像在桌面上一样工作,因此您找到的适用于桌面上的键盘挂钩的任何代码都是有效的(除了包含 WinCE 中的 API 的 DLL 是 coredll.dll)。

CodeProject 上有一个用于 Windows Mobile 的键盘挂钩示例,它可能会为您提供所需的一切基础。从那里开始,它只是挂钩处理程序中的字符串解析。

于 2013-03-29T14:01:26.770 回答
0

通过设置 Form.KeyPreview 属性使用任何 Key 事件应该允许您查看来自扫描仪的数据。但是您一次只能看到一个“键”或字符。这些事件在每次调用时仅处理单个字符或键。就您的应用程序而言,它看起来与用户敲击键盘上的键没有什么不同。

如果您可以选择,并且可以将您的扫描仪置于非键盘仿真模式并直接挂钩扫描事件,那么您可能会对它在使用时如何独立于 GUI 工作的结果更满意方式。通常使用可以执行此操作的设备,您将收到整个扫描作为单个事件。

我建议包括有关您正在使用的设备的详细信息,以便有人可以为您提供可能与相关硬件相关的更具体的建议。

于 2013-03-29T15:55:03.370 回答