Yanıtlar:
IBM bu anahtara "alternatif grafik" adını verdi ve CTRL+ yerine geçmedi ALT, ancak CTRL+ Windows ALTiçin yerine geçti ALT GR. Normalde bir tuştan beklenenden farklı bir giriş sağlayan bir anahtar değiştiricidir (CTRL veya SHIFT gibi).
Klavyenize ve konum ayarınıza bağlı olarak, alfabetik tuşlarla (çoğunlukla sesli harfler) birlikte kullanıldığında ve bazı tuşlara basılmış üçüncü sembolle, örneğin (( ALT GR+ 4) veya İngiltere klavyemde görünen ¦ ( ALT GR+ `). Kıta Avrupalı klavyeleri genellikle üzerinde, üzerinde yazılı olan ve farklı dillerde diasritik işaretler bulunan harflere karşılık gelen ekstra sembollerin bulunduğu daha fazla tuşa sahiptir.
Daha fazla bilgi için AltGr tuşuna bakın .
Alt
. Wikipedia makalesinin bundan bile bahsetmemesi garip.
Alt Gr
olarak uygulanmaktadır Ctrl
+ Alt
ancak Ctrl
+ Alt
eşleşmiyor Alt Gr
.
Bazı klavyelerde, bazı alternatif kombinasyonlara izin verir. Bazı klavyelerde yüzde sembolüne veya euro sembolüne izin verir - Wikipedia, Alt Gr kullanarak oldukça kapsamlı bir kombinasyon listesine sahiptir .
Ancak, bir ABD / Windows tuş haritasını kullanarak, çoğu durumda hiçbir şey yapmaz.
Ayrıca, Ctrl + alt + del yapmak zorunda olan erişilebilirlik ihtiyaçları olan insanlar için kullanışlıdır. Tek elle denersin.
AltGr
to Ctrl
+ Alt
dönüşümünden (en azından Windows ve Linux'ta) çok daha düşük bir düzeyde ele alınır , bu nedenle tam olarak aynı şekilde çalışmayacaklar. (Belki bir klavye gönderme Ctrl
+ Alt
Lehçe gibi bazı diller için Alt gr gereklidir:
Alt Gr+ a= ą
Alt Gr+ s= ś
Alt Gr+ shift+ n= Ń
Bunun böyle uygulandığından eminim.
Ne aldığınızı görmek için vkCode'u KBDLLHOOKSTRUCT cihazından test edebilirsiniz.
Buradan , buradan ve enpin eşlenmiş liste www.pinvoke.net/default.aspx/Constants/WM.html
Buna eşdeğer olmalıdır:
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;
Varsayılan Almanca klavyedeki Önemli Alt + Gr tuş bileşimleri şunlardır: