Réponses:
IBM a nommé cette clé "graphique alternatif" et ce n'est pas un substitut pour CTRL+ ALT, bien que CTRL+ ait ALTété implémenté comme substitut ALT GRdans Windows. Il s'agit d'un modificateur de touche (comme CTRL ou SHIFT) qui permet une entrée différente de celle normalement attendue d'une touche.
Selon votre clavier et la configuration de l'emplacement, il peut être utilisé pour produire des caractères avec des signes diacritiques lorsqu'il est utilisé en conjonction avec des touches alphabétiques (le plus souvent des voyelles), et le troisième symbole qui est imprimé sur certaines touches, par exemple € ( ALT GR+ 4) ou ¦ ( ALT GR+ `) qui apparaissent sur mon clavier britannique. Les claviers d'Europe continentale ont généralement beaucoup plus de touches avec des symboles supplémentaires imprimés sur eux qui correspondent aux lettres avec les différents types de signes diacritiques utilisés dans ces langues.
Voir la touche AltGr pour plus d'informations.
Alt
. C'est étrange que l'article Wikipédia ne mentionne même pas cela.
Alt Gr
le Ctrl
+ est implémenté Alt
mais que Ctrl
+ Alt
ne correspond pas à Alt Gr
.
Pour certains claviers, il permet des combinaisons alternatives. Dans certains claviers, il permet le symbole du cent ou le symbole de l'euro - Wikipedia a une liste assez complète de combinaisons utilisant Alt Gr.
Cependant, en utilisant un clavier américain / Windows, il ne fait rien dans la plupart des cas.
Aussi, pratique pour les personnes ayant des besoins d'accessibilité qui doivent faire un Ctrl + alt + del. Vous l'essayez d'une seule main.
AltGr
vers Ctrl
+ Alt
(au moins sur Windows et Linux), donc ils ne fonctionneront pas exactement de la même manière. (Sauf peut-être dans le cas d'un envoi de clavier Ctrl
+ Alt
scancodes.)
Alt gr est nécessaire pour certaines langues comme le polonais:
Alt Gr+ a= ±
Alt Gr+ s= ¶
Alt Gr+ shift+ n= Ń
Je suis sûr qu'il est implémenté comme ça.
Vous pouvez tester le vkCode à partir de KBDLLHOOKSTRUCT pour voir ce que vous obtenez.
Liste d'énumérations mappées d' ici , ici et www.pinvoke.net/default.aspx/Constants/WM.html
Cela devrait être équivalent à ceci:
using System.Windows.Forms;
isAltGr ? (Keys) (1 << 19) : Keys.None
private static Keys BuildKeyData(Keys virtualKeyCode) => virtualKeyCode | (IsDownControl ? Keys.Control : Keys.None) | (IsDownShift ? Keys.Shift : Keys.None) | (IsDownAlt ? Keys.Alt : Keys.None) | (IsAltGr ? (Keys) (1 << 19) : Keys.None);
private static bool IsDownControl => IsKeyPressed((ushort)VirtualKeys.LeftControl) || IsKeyPressed((ushort)VirtualKeys.RightControl);
private static bool IsDownShift => IsKeyPressed((ushort)VirtualKeys.LeftShift) || IsKeyPressed((ushort)VirtualKeys.RightShift);
private static bool IsDownAlt => IsKeyPressed((ushort)VirtualKeys.LeftMenu) || IsKeyPressed((ushort)VirtualKeys.RightMenu) || IsKeyPressed((ushort)VirtualKeys.Menu);
private static bool IsAltGr => IsDownControl && IsDownAlt;
Les combinaisons de touches Alt + Gr importantes sur un clavier allemand par défaut sont: