我们开发了一个全屏运行的应用程序,因此修改器指示器不可见。
所以我现在需要一个解决方案来更新我们放在显示屏上的图标,状态为橙色,蓝色和移位。 有趣的是,此解决方案应该适用于 Omnii XT 10 , Omnii XT 15 , MC65 , WAP 3 , WinMobile 6.0 中的 WAP 4 , MC91 和 MC92 以及 6.5 和 CE6
我使用移动设备SDK V8.0_8.42743获得了Psion设备的解决方案。它将迫使我根据操作系统将不同的DLL复制到设备上,但至少它可以很好地工作。
在MC65上,我可以使用Motorola EMDK for .NET v2.9(或v2.8 - 可以正常工作)。但是我希望这也适用于MC91和MC92,但事实并非如此。那些人实际上声称它: Release Notes - EMDK for .NET v2.8
然而事实证明,这些设备中的 keybddr.dll 具有不同的功能。虽然我可以得到他们的名字,但我仍然没有他们的签名,所以我只能猜测和希望。
MC91
GetAlphaMode GetKeybdMode GetKeybdState RegisterKeyboardNotification RegisterKeyStateNotification SetAlphaMode SetKeyState SetMappingTable SetMultiMappingTable UnregisterKeyboardNotification UnregisterKeyStateNotification
MC65
GetKbdModiferState GetKeyStateEx GetValidKbdModifers SetKbdModifierState SetKeyState
MC91和MC92的唯一想法是自己分析Windows消息队列并记录不同的消息。但是,并非所有设备都会发送橙色和蓝色的关键事件。我还必须跟踪用于启用,禁用,锁定这些修改键以及按下由这些键修改的键的消息序列。这似乎很多工作,很容易出错。不是我的老板愿意接受的东西。
问题:
有人可以建议在 MC91 和<上获得橙色,蓝色和转移的状态strong> MC92 ,理想情况下适用于上面列出的所有设备和操作系统?
答案 0 :(得分:0)
我不知道您列出的具体设备,但如果通过操作系统中的虚拟键模拟密钥,您可以尝试GetAsyncKeyState https://msdn.microsoft.com/en-us/library/ms929204.aspx并在需要检查其中一个密钥时调用它如果按下它们会触发某种事件,那么它就是向下或在轮询循环中。 这适用于任何Windows CE / Mobile版本。