Mes données: appareil mobile personnalisé exécutant Windows CE 4.2, Compact Framework 2.0 SP1. C# application faisant un usage décent de P/Invoke sans problèmes jusqu'à présent.Dans .NET CF 2.0, un hook de clavier global interférera-t-il avec P/Invoke nécessitant une pression sur une touche?
J'ai écrit un hook pour clavier de bas niveau (similaire à, mais pas identique à, this CodeProject post) qui fonctionne à merveille à une exception près. Une chose que notre logiciel fait est de permettre l'accès à la fonctionnalité de calibrage d'écran de Windows CE; C'est l'écran sur lequel vous devez appuyer sur une série de cibles, enfin appuyer sur Esc pour annuler ou sur Enter pour accepter. Nous appelons cette fonctionnalité via a P/Invoke, et je pense que la touche qui se produit dans cette fonction de l'API Win32 est interférée par mon crochet de clavier.
Mon crochet de clavier ne fait rien d'intensif, et ne change pas le flux d'exécution, mais je pense que l'utilisation des deux peut être fondamentalement incompatible. Lorsque je quitte le débogueur après l'exécution de cet écran, toutes les touches Entrée enfoncent que j'ai tenté de tout "frapper" à la fois (cet appareil fait un bruit de frappe clicky) lorsque le programme se ferme. Cela me fait penser que le crochet ne transmet pas correctement la touche dans la fonction API Win32 comme il le fait correctement à une application .NET. Des pensées?
Pensez-vous que:
a) crochets de clavier et d'un clavier nécessitant P/Invoque sont incompatibles, ou
b) ma mise en œuvre du crochet du clavier est à blâmer, ou
c) dépend-elle du tout sur le fabricant du matériel, les pilotes, etc?
Merci pour votre aide!
> Vous voulez dire que vous appelez TouchCalibrate dans le code, puis arrêtez le débogage et que le message est envoyé? C'est exactement ce que je veux dire. Je sais que la touche enfonce mon crochet, mais c'est comme si le crochet ne le transmettait pas à TouchCalibrate. Je vais vérifier Platform Builder. Aussi, beaucoup d'amour pour OpenNetCF! <3 –
J'ai beaucoup de mal à trouver la version eval de PB 4.2 - tous les liens sur les sites MS qui prétendent l'indiquer sont morts. Le CE 4.2 n'a-t-il pas terminé son cycle de vie soutenu cette année? Alternativement, pensez-vous que le code TouchCalibrate dans le SDK 6.0 serait similaire? –
Je doute que TouchCalibrate a des changements d'au moins 3.0 sur. – ctacke