Відповіді:
IBM назвав цей ключ "альтернативною графікою", і він не є заміною CTRL+ ALT, хоча CTRL+ ALTбув реалізований як заміна для ALT GRWindows. Це модифікатор клавіш (як CTRL або SHIFT), який дозволяє вводити інший вхід, ніж зазвичай очікується від ключа.
Залежно від налаштування клавіатури та місця розташування, його можна використовувати для створення символів з діакритичними позначками, коли вони використовуються разом з алфавітними клавішами (найчастіше голосними) та третім символом, який друкується на деяких клавішах, наприклад, € ( ALT GR+ 4) або ¦ ( ALT GR+ `), які відображаються на моїй клавіатурі Великобританії. У континентальних європейських клавіатурах зазвичай є набагато більше клавіш із додатковими символами, надрукованими на них, які відповідають літерам з різними типами діакритичних знаків, які використовуються в цих мовах.
Див. Ключ AltGr отримання додаткової інформації див. .
Alt
. Дивно, що стаття у Вікіпедії навіть про це не згадує.
Alt Gr
реалізовано як Ctrl
+, Alt
але Ctrl
+ Alt
не відображається Alt Gr
.
Для деяких клавіатур це дозволяє кілька альтернативних комбінацій. На деяких клавіатурах це дозволяє символ цента або символ євро - у Вікіпедії є досить вичерпний список комбінацій за допомогою Alt Gr.
Однак, використовуючи клавішну карту США / Windows, вона в більшості випадків нічого не робить.
Крім того, зручно для людей з потребами у доступності, яким потрібно виконати Ctrl + alt + del. Ви пробуєте це однією рукою.
AltGr
в Ctrl
+ Alt
(принаймні в Windows та Linux), тому вони не працюватимуть абсолютно однаково. (За винятком можливо у випадку надсилання на клавіатуру Ctrl
+ Alt
Alt gr необхідний для деяких мов, таких як польська:
Alt Gr + a = ą
Alt Gr + s = ś
Alt Gr+ shift+ n= Ń
Я впевнений, що він реалізований так.
Ви можете протестувати vkCode з KBDLLHOOKSTRUCT, щоб побачити, що ви отримаєте.
Списаний список переліку тут , тут , і www.pinvoke.net/default.aspx/Constants/WM.html
Це має бути рівнозначно цьому:
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;
Важливими комбінаціями клавіш Alt + Gr на німецькій клавіатурі за замовчуванням є: