0

我在 Windows CE 4.2 上使用SetWindowsHookEX()编写了一个低级键盘钩子,它似乎工作得很好。我可以根据需要在记事本和其他应用程序中使用键盘和条形码扫描仪查看键事件,但在我想要收集键的一个应用程序中看不到条形码扫描仪事件。我仍然看到来自键盘,但是,所以我知道键盘钩子仍在工作并且在钩子链中。我什至尝试每毫秒将我的钩子插入链中,看看它是否会有所作为,但没有骰子。如果我翻回记事本,它会恢复到我想要的工作方式。

我不确定当该应用程序处于活动状态时,其他应用程序正在做什么来获得对扫描仪的控制权,从而阻止它再像键盘一样工作。对此的任何想法将不胜感激。我做了一堆搜索,没有任何成功。我考虑尝试使用RAWINPUT,但据我所知,Windows CE 4.2 似乎不支持它,因为我在 SDK 中看不到 user32.dll 。

4

1 回答 1

1

在大多数 WEC 设备上,有两种方法可以获取条码数据。

  1. 键盘楔子(数据作为键盘事件进来的地方)
  2. OEM 特定的条形码阅读器 API

如果您查看的其他应用程序使用选项#2,则没有要检索的键盘数据,因此您看不到任何数据是有道理的。也就是说,您可能会阅读这篇文章,看看它是否为您的键盘挂钩提供了任何提示。

大Windows中user32.dll导出的函数一般在WEC/WEH的coredll.dll中。

-保罗H

于 2013-09-27T17:29:34.193 回答