26

Я где-то читал, что клавиша Alt Gr, найденная на некоторых раскладках, заменяет Ctrl + Alt.

Однако для чего можно использовать эту комбинацию? Есть ли документированные сочетания клавиш, использующие Ctrl + Alt?

6 ответов6

24

IBM назвала этот ключ "альтернативной графикой", и он не заменяет CTRL + ALT, хотя CTRL + ALT был реализован вместо Windows ALT GR . Это ключевой модификатор (например, CTRL или SHIFT), который позволяет вводить информацию, отличную от той, которая обычно ожидается от клавиши.

В зависимости от вашей клавиатуры и настроек местоположения ее можно использовать для создания символов с диакритическими знаками при использовании в сочетании с буквенными клавишами (чаще всего гласными) и третьим символом, напечатанным на некоторых клавишах, например, € (ALT GR + 4) или ¦ (ALT GR + `), которые появляются на моей клавиатуре в Великобритании. Клавиатуры континентальной Европы обычно имеют гораздо больше клавиш с напечатанными на них дополнительными символами, которые соответствуют буквам с различными типами диакритических знаков, используемых на этих языках.

См. Ключ AltGr для получения дополнительной информации.

8

Для некоторых клавиатур допускается несколько альтернативных комбинаций. В некоторых клавиатурах он допускает символ цента или символ евро - в Википедии есть довольно полный список комбинаций с использованием Alt Gr.

Однако, используя карту ключей США /Windows, в большинстве случаев она ничего не делает.

3

Alt gr необходим для некоторых языков, таких как польский:

Alt Gr + a = ą

Alt Gr + s = ś

Alt Gr + shift + n = Ń

2

Кроме того, удобно для людей с ограниченными возможностями, которые должны сделать Ctrl+ Alt + Del. Вы попробуете это одной рукой.

1

Я уверен, что это реализовано так.

Вы можете проверить 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;
0

Важные комбинации клавиш Alt+Gr на немецкой клавиатуре по умолчанию:

  • @ ... AltGr + Q (если вы нажмете те же клавиши на клавиатуре OS X, приложение будет закрыто)
  • € ... AltGr + E
  • {... AltGr + 7
  • [... AltGr + 8
  • ] ... AltGr + 9
  • } ... AltGr + 0
  • \ ... AltGr + ß
  • ~ ... AltGr ++
  • | ... AltGr + <
  • µ ... AltGr + M

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .