Jawaban:
IBM menamai kunci ini "grafis alternatif" dan itu bukan pengganti CTRL+ ALT, meskipun CTRL+ ALTdiimplementasikan sebagai pengganti ALT GRdi Windows. Ini adalah pengubah kunci (seperti CTRL atau SHIFT) yang memungkinkan input berbeda dari yang biasanya diharapkan dari kunci.
Bergantung pada pengaturan keyboard dan lokasi Anda, ini dapat digunakan untuk menghasilkan karakter dengan tanda diakritik ketika digunakan bersama dengan tombol alfabet (paling sering vokal), dan simbol ketiga yang dicetak pada beberapa tombol, misalnya, € ( ALT GR+ 4) atau ¦ ( ALT GR+ `) yang muncul di keyboard UK saya. Keyboard Eropa Kontinental umumnya memiliki lebih banyak kunci dengan simbol tambahan yang dicetak di atasnya yang sesuai dengan berbagai jenis tanda diakritik yang digunakan dalam bahasa tersebut.
Lihat tombol AltGr untuk informasi lebih lanjut.
Alt
. Sungguh aneh bahwa artikel Wikipedia bahkan tidak menyebutkan itu.
Alt Gr
diimplementasikan sebagai Ctrl
+ Alt
tetapi Ctrl
+ Alt
tidak memetakan Alt Gr
.
Untuk beberapa keyboard, ini memungkinkan beberapa kombinasi alternatif. Di beberapa keyboard memungkinkan simbol cent atau simbol euro - Wikipedia memiliki daftar kombinasi yang cukup lengkap menggunakan Alt Gr.
Namun menggunakan US / Windows keymap, itu tidak melakukan apa pun dalam banyak kasus.
Alt gr diperlukan untuk beberapa bahasa seperti Polandia:
Alt Gr+ a= ą
Alt Gr+ s= ś
Alt Gr+ shift+ n= Ń
Juga, berguna untuk orang-orang dengan kebutuhan aksesibilitas yang harus melakukan Ctrl + alt + del. Anda mencobanya satu tangan.
AltGr
ke Ctrl
+ Alt
(setidaknya pada Windows dan Linux), sehingga mereka tidak akan bekerja persis sama. (Kecuali mungkin dalam kasus keyboard mengirim Ctrl
+ Alt
scancodes.)
Saya cukup yakin ini diterapkan seperti ini.
Anda dapat menguji vkCode dari KBDLLHOOKSTRUCT untuk melihat apa yang Anda dapatkan.
Daftar enum yang dipetakan dari sini , di sini , dan www.pinvoke.net/default.aspx/Constants/WM.html
Itu harus setara dengan ini:
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;
Kombinasi penting Alt + Gr pada keyboard Jerman default adalah: