Я где-то читал, что клавиша Alt Gr, найденная на некоторых раскладках, заменяет Ctrl + Alt.
Однако для чего можно использовать эту комбинацию? Есть ли документированные сочетания клавиш, использующие Ctrl + Alt?
Я где-то читал, что клавиша Alt Gr, найденная на некоторых раскладках, заменяет Ctrl + Alt.
Однако для чего можно использовать эту комбинацию? Есть ли документированные сочетания клавиш, использующие Ctrl + Alt?
IBM назвала этот ключ "альтернативной графикой", и он не заменяет CTRL + ALT, хотя CTRL + ALT был реализован вместо Windows ALT GR . Это ключевой модификатор (например, CTRL или SHIFT), который позволяет вводить информацию, отличную от той, которая обычно ожидается от клавиши.
В зависимости от вашей клавиатуры и настроек местоположения ее можно использовать для создания символов с диакритическими знаками при использовании в сочетании с буквенными клавишами (чаще всего гласными) и третьим символом, напечатанным на некоторых клавишах, например, € (ALT GR + 4) или ¦ (ALT GR + `), которые появляются на моей клавиатуре в Великобритании. Клавиатуры континентальной Европы обычно имеют гораздо больше клавиш с напечатанными на них дополнительными символами, которые соответствуют буквам с различными типами диакритических знаков, используемых на этих языках.
См. Ключ AltGr для получения дополнительной информации.
Для некоторых клавиатур допускается несколько альтернативных комбинаций. В некоторых клавиатурах он допускает символ цента или символ евро - в Википедии есть довольно полный список комбинаций с использованием Alt Gr.
Однако, используя карту ключей США /Windows, в большинстве случаев она ничего не делает.
Alt gr необходим для некоторых языков, таких как польский:
Alt Gr + a = ą
Alt Gr + s = ś
Alt Gr + shift + n = Ń
Кроме того, удобно для людей с ограниченными возможностями, которые должны сделать Ctrl+ Alt + Del. Вы попробуете это одной рукой.
Я уверен, что это реализовано так.
Вы можете проверить 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 на немецкой клавиатуре по умолчанию: