【发布时间】:2017-02-12 10:05:36
【问题描述】:
我们开发了一个全屏运行的应用程序,因此修饰符指示器不可见。
所以我现在需要一个解决方案来更新我们放在显示器上的图标,使其状态为橙色、蓝色和 shift。 有趣的是这个解决方案应该适用于 Omnii XT 10、Omnii XT 15、MC65、WAP 3、 WAP 4、MC91 和 MC92 在 WinMobile 6.0 和 6.5 和 CE6.
我使用移动设备 SDK V8.0_8.42743 获得了 Psion 设备的解决方案。它会迫使我根据操作系统将不同的 DLL 复制到设备上,但至少它可以正常工作。
在 MC65 上,我让它与摩托罗拉 EMDK 一起工作,用于 .NET v2.9(或 v2.8 - 都可以)。但是我希望这也适用于 MC91 和 MC92,但事实并非如此。那些实际上声称它确实: Release Notes - EMDK for .NET v2.8
但事实证明,这些设备中的 keybddr.dll 具有不同的功能。虽然我可以得到他们的名字,但我仍然没有他们的签名,所以我只能猜测和希望。
MC91
获取阿尔法模式 获取KeybdMode GetKeybdState 注册键盘通知 RegisterKeyStateNotification 设置AlphaMode 设置密钥状态 设置映射表 设置多映射表 注销键盘通知 UnregisterKeyStateNotificationMC65
GetKbdModiferState GetKeyStateEx GetValidKbdModifers SetKbdModifierState 设置密钥状态MC91 和 MC92 剩下的唯一想法是自己分析 Windows 消息队列并记录不同的消息。但是,并非所有设备都发送橙色和蓝色的关键事件。我还必须跟踪消息序列,以启用、禁用、锁定这些修改键以及按下由这些键修改的键。这看起来工作量很大,而且很容易出错。不是我的老板愿意招待的。
问题:
有人可以建议一种方法来获取 MC91 和 orange、blue 和 shift 的状态吗? strong>MC92 并且理想情况下可以在上面列出的所有设备和操作系统上运行?
【问题讨论】:
-
您已经做对了:将此问题提交给摩托罗拉/斑马技术支持。即使您有 keybddr.dll 的导出函数的名称,您仍然需要知道函数参数、类型和返回码。观察消息队列无济于事。硬件键盘状态不能通过标准 Windows 消息队列正常处理。如果没有密钥消息,也没有关于如何管理这些硬件密钥状态的文档,那么您将迷失方向。
标签: windows-mobile compact-framework windows-ce motorola-emdk modifier-key