Мы разрабатываем приложение, которое работает в полноэкранном режиме, поэтому индикаторы модификатора не видны.получить состояние ключей модификатора (оранжевый, синий, сдвиг) на MC91 и MC92
Так что теперь мне нужно решение для обновления значков, которые мы помещаем на дисплей, с оранжевым, синим и сдвигом. Забавная часть это решение должно работать на Omnii XT 10, Omnii XT 15, MC65, WAP 3, WAP 4, MC91 и MC92 в WinMobile 6,0 и 6.5 и CE6.
Я получил решение для устройств Psion, используя SDK мобильных устройств V8.0_8.42743. Это заставит меня копировать разные DLL на устройства в зависимости от ОС, но по крайней мере хорошо работает.
На MC65 я получаю его для работы с Motorola EMDK для .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 и MC92 и идеально один, который будет работать на всех устройствах и ОС, перечисленных выше?
Вы уже направо: обратитесь к поддержке мотороли/зебры.Даже если у вас есть имена экспортированных функций keybddr.dll, вам все равно нужно знать аргументы, типы и коды возврата. Наблюдение за очередью сообщений не поможет. Аппаратные состояния клавиатуры не обрабатываются обычно через стандартную очередь сообщений Windows. Если нет ключевого сообщения и нет документации о том, как управлять этими состояниями аппаратного ключа, вы теряетесь. – josef