2

我正在使用 Compact Framework 3.5 为我的 PDA 开发一个 Windows Mobile 应用程序。我有一个Form,我需要抓住这个 PDA 的所有硬件键:

在此处输入图像描述

因此,如果我按下数字按钮、“发送”按钮或“相机”按钮,我想知道按下了哪个按钮。

我尝试使用 my 的KeyDown结束KeyUp事件Form,但并非所有键都被拦截。我也尝试 PInvoke AllKeysAPI,但这样我可以禁用/启用除相机键之外的所有键,这不是我想要的。

我需要完全控制我的硬件密钥。我能怎么做?

4

2 回答 2

1

您可以捕获产生键盘消息的所有键: http ://www.hjgode.de/wp/2012/09/20/windows-mobile-cf-how-to-catch-f1-and-f2-in-weh/

如果某个键没有发出键盘消息(例如,Intermec 上的扫描按钮发出一个命名事件),您将无法捕捉到它。可能 OEM 也为这些密钥提供了 SDK。

另见http://www.hjgode.de/wp/2011/12/20/windows-mobile-the-no-go-world-of-function-keys/

于 2013-05-10T15:47:21.557 回答
0

要捕获所有内容,您应该使用设备制造商提供的 SDK。

正如您所发现的,KeyDown并且KeyUp只会捕获连接到 Windows 操作系统的项目。

摄像头、条形码扫描和电源按钮不是通常在运行 Windows 的电子设备中发现的项目,我认为这些项目没有行业标准的按键分配。

于 2013-05-10T14:36:24.860 回答