2

Nous développons une application qui fonctionne en plein écran afin que les indicateurs de modificateur ne sont pas visibles.obtenir l'état des touches de modification (orange, bleu, décalage) sur MC91 et MC92

J'ai maintenant besoin d'une solution pour mettre à jour les icônes que nous mettons à l'écran avec l'état orange, bleu et shift. La partie amusante est cette solution devrait fonctionner sur Omnii XT 10, Omnii XT 15, MC65, WAP 3, WAP 4, MC91 et MC92 dans WinMobile 6.0 et 6,5 et CE6.

J'ai obtenu une solution pour les périphériques Psion en utilisant le SDK Mobile Devices SDK V8.0_8.42743. Il va me forcer à copier des DLL différentes sur les périphériques en fonction de l'OS, mais au moins cela fonctionne bien alors.

Sur le MC65, je l'ai fait fonctionner avec Motorola EMDK pour .NET v2.9 (ou v2.8 - fonctionne soit). Cependant, je m'attendais à ce que cela fonctionne aussi sur le MC91 et le MC92 mais ce n'est pas le cas. Ceux réellement prétendre fait: Release Notes - EMDK for .NET v2.8

Cependant, il se le keybddr.dll dans ces appareils a des fonctions différentes. Même si je peux obtenir leurs noms, je n'ai toujours pas leur signature, donc je ne peux que deviner et espérer.

MC91

 
GetAlphaMode 
GetKeybdMode 
GetKeybdState 
RegisterKeyboardNotification 
RegisterKeyStateNotification 
SetAlphaMode 
SetKeyState 
SetMappingTable 
SetMultiMappingTable 
UnregisterKeyboardNotification 
UnregisterKeyStateNotification 

MC65

 
GetKbdModiferState 
GetKeyStateEx 
GetValidKbdModifers 
SetKbdModifierState 
SetKeyState 

La seule idée gauche pour MC91 et MC92 est d'analyser moi-même Windows Message Queue et enregistrer les différents messages. Cependant, tous les appareils n'envoient pas d'événements clés pour l'orange et le bleu. Je devrais également suivre la séquence de messages pour activer, désactiver, verrouiller ces touches de modification et pour appuyer sur une touche modifiée par ces touches. Cela semble beaucoup de travail et très sujet aux erreurs. Pas quelque chose que mes patrons sont prêts à divertir.


Question:

Quelqu'un peut-il suggérer un moyen d'obtenir l'état de d'orange, bleu et changement sur MC91 et MC92 et idéalement un qui fonctionnerait sur tous les appareils et systèmes d'exploitation listés ci-dessus?

+0

Vous avez déjà fait le bien: adressez-le au support motorola/zèbre.Même si vous avez les noms des fonctions exportées de keybddr.dll, vous devez toujours connaître les arguments de la fonction, les types et les codes de retour. Regarder la file d'attente des messages n'aidera pas. Les états du clavier matériel ne sont pas gérés normalement via la file d'attente des messages Windows standard. S'il n'y a aucun message clé et aucune documentation sur la façon de gérer ces états de clé matérielle, vous êtes perdu. – josef

Répondre

0

Je ne connais pas les périphériques spécifiques que vous répertoriez, mais si les clés sont émulées via des clés virtuelles dans le système d'exploitation, vous pouvez essayer GetAsyncKeyState https://msdn.microsoft.com/en-us/library/ms929204.aspx et l'appeler lorsque vous devez vérifier si l'une de ces touches est arrêtée ou dans une boucle d'interrogation si les presser devrait déclencher une sorte d'événement. Cela devrait fonctionner sur n'importe quelle version de Windows CE/Mobile.

+0

cela ne fonctionne pas pour Orange et Bleu et pas même pour orange + clé; d'ailleurs cela signifierait toujours que je devrais suivre l'état des touches de modification moi-même et la séquence de codes dépend de l'appareil puisque Blue et Orange ne sont pas des boutons standard – Holly