2

我们开发了一个全屏运行的应用程序,因此修改器指示器不可见。

所以我现在需要一个解决方案来更新我们放在显示器上的橙色、蓝色和 shift 状态的图标。有趣的是这个解决方案应该适用于WinMobile 6.06.5CE6中的Omnii XT 10Omnii XT 15MC65WAP 3WAP 4MC91MC92

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

在 MC65 上,我让它与摩托罗拉 EMDK 一起工作,用于 .NET v2.9(或 v2.8 - 都可以)。但是我希望这也适用于 MC91 和 MC92,但事实并非如此。那些实际上声称确实如此: 发行说明 - EMDK for .NET v2.8

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

MC91

获取阿尔法模式
获取KeybdMode
GetKeybdState
注册键盘通知
RegisterKeyStateNotification
设置AlphaMode
设置密钥状态
设置映射表
设置多重映射表
注销键盘通知
UnregisterKeyStateNotification

MC65

GetKbdModiferState
GetKeyStateEx
GetValidKbdModifers
SetKbdModifierState
设置密钥状态

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


问题:

有人可以建议一种方法来获取MC91MC92上的orangeblueshift状态,理想情况下可以在上面列出的所有设备和操作系统上运行吗?

4

1 回答 1

0

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

于 2016-10-04T12:11:54.470 回答