web-dev-qa-db-fra.com

Bouton Backtick (Grave accent) collé

J'ai Ubuntu 12.04 en cours d'exécution sur une machine virtuelle Virtual Box, sur mon système Windows 7 32 bits. Cela a fonctionné très bien, sauf que le bouton backtick/tilde colle (pas physiquement).

Lorsque j'appuie sur le bouton de retour, il se répète jusqu'à ce qu'un autre bouton d'entrée soit enfoncé. Donc, si j'appuie sur la barre d'espace pendant que le backtick se répète, il s'arrête, mais si j'appuie sur le shift pendant qu'il se répète, le backtick se transforme en tilde, et le tilde continue de se répéter jusqu'à ce que je relâche la touche shift (à quel point c'est un backtick à nouveau et continue à répéter).

Ce comportement collant ne se produit qu'avec la touche de backtick, et uniquement dans ma virtualisation Ubuntu, jamais dans Windows.

J'ai essayé à la fois le clavier de mon ordinateur portable et un clavier USB externe et le problème se produit sur les deux. Les deux claviers que j'ai essayés ont une disposition de touches japonaise 106/109, mais je les utilise avec un profil anglais (US) 101. Quand je fais référence à la touche de backtick ci-dessus, je veux dire où elle se trouve sur la mise en page américaine.

Si j'utilise le profil japonais, la clé à cet emplacement (l'emplacement de backtick américain) reste toujours, mais ce n'est plus mappé comme clé de backtick.

Avez-vous une idée de ce qui pourrait être à l'origine de cela et des solutions possibles?

J'ai beaucoup cherché, mais je n'ai pas trouvé d'aide jusqu'à présent. Toute aide est grandement appréciée.

Informations supplémentaires: j'ai démarré Linux à partir d'une clé USB et j'ai constaté qu'il n'avait pas ce problème de clé bloquée. Il semble donc que ce soit quelque chose avec Virtual Box.

3
Scott Lemmon

Je connais ce problème. J'ai acheté un ordinateur portable Windows au Japon et j'ai rencontré le problème de la clé tilde.

Comme vous le savez, la clé tilde est utilisée dans les fenêtres japonaises pour la commutation IME orientée japonais, et les claviers japonais contiennent des marques sur la clé à cet effet.

J'ai approfondi quelque peu le problème, mais j'ai perdu la motivation. Voici un résumé de mes maigres conclusions:

  • VirtualBox, dans la fenêtre de la machine virtuelle, ne capture pas les événements Windows WM_KEY ordinaires. Au contraire, il enregistre un crochet de clavier de bas nivea . Recherchez les occurrences de LowLevelKeyboardProc dans ce fichier source VirtualBox .

  • Je soupçonne que dans Windows japonais, en raison de son rôle spécial, la clé tilde ne génère pas d'événement up lorsque la clé est relâchée. Étant donné que VirtualBox doit effectuer une simulation fidèle des codes de numérisation vers le système virtualisé, il semble que le tilde soit maintenu enfoncé.

  • Bien que j'aie pu surveiller les événements se déversant dans les fenêtres VirtualBox à l'aide de Spy ++, ceux de bas niveau ne sont pas visibles. L'interface de configuration de VirtualBox contient des événements clés normaux, mais les fenêtres de la machine, absolument rien. Même les touches de raccourci de l'interface utilisateur pour VirtualBox elle-même (non destinées à la machine) sont toutes gérées via ce crochet de bas niveau, semble-t-il.

Donc, tester cette hypothèse nécessiterait d'écrire un exemple de programme qui intercepte les événements de clavier de la même manière et montre qu'il n'y a pas de correspondance "haut" pour un "bas" pour la touche tilde. Bien que Visual Studio tourne autour, et ce n'est pas compliqué, c'est juste trop d'efforts pour ce problème stupide.

Quoi qu'il en soit, malgré l'enquête incomplète, je place une faible probabilité sur la notion qu'il s'agit d'un problème Ubuntu.

1
Kaz