获取MC91和MC92上的修改键状态(橙色,蓝色,shift)



我们开发了一个全屏运行的应用程序,所以修饰符指示器是不可见的。

所以我现在需要一个解决方案来更新我们放在显示器上的图标,使其处于橙色,蓝色和shift状态。有趣的部分是这个解决方案应该在Omnii XT 10Omnii XT 15MC65WAP 3WAP 4MC916.5CE6中工作。

我使用移动设备SDK V8.0_8.42743获得了Psion设备的解决方案。这将迫使我根据操作系统将不同的dll复制到设备上,但至少它工作得很好。

在MC65上,我让它与摩托罗拉EMDK的。net v2.9(或v2.8 -任何工作)一起工作。然而,我预计这也适用于MC91和MC92,但它没有。这些人实际上是这么说的:发行说明- EMDK for .NET v2.8

然而,事实证明,这些设备中的keybddr.dll具有不同的功能。虽然我知道他们的名字,但我还没有他们的签名,所以我只能猜测和希望。

MC91

<>之前GetAlphaModeGetKeybdModeGetKeybdStateRegisterKeyboardNotificationRegisterKeyStateNotificationSetAlphaModeSetKeyStateSetMappingTableSetMultiMappingTableUnregisterKeyboardNotificationUnregisterKeyStateNotification之前

MC65

<>之前GetKbdModiferStateGetKeyStateExGetValidKbdModifersSetKbdModifierStateSetKeyState之前

留给MC91和MC92的唯一想法是自己分析Windows消息队列并记录不同的消息。然而,并不是所有的设备都发送橙色和蓝色的键事件。我还必须跟踪消息序列,以启用、禁用、锁定这些修改键,并按下由这些键修改的键。这看起来工作量很大,而且很容易出错。我的老板可不愿意这么做。


问题:

有人能建议一种方法来获得橙色蓝色移动MC91MC92上的状态,理想的是在上面列出的所有设备和操作系统上工作?

我不知道你列出的具体设备,但如果键是通过操作系统中的虚拟键模拟的,你可以尝试GetAsyncKeyState https://msdn.microsoft.com/en-us/library/ms929204.aspx,并在需要检查其中一个键是否down或在轮询循环中调用它,如果按下它们应该触发某种事件。这应该适用于任何版本的Windows CE/Mobile。

最新更新