- serkanyarar
- application, basılan, c#, console, info, key, KeyInfo, klavyeden, tuş
- 1 Comment
- 1393 Views
Console.Application‚da bir uygulama oluşturuyor ve kullanıcınızın klavyeden hangi tuşa bastığını öğrenmek istiyorsanız System sınıfındaki ConsoleKeyInfo yapısını kullanabilirsiniz. Kodlarımız şu şekilde:
static void Main(string[] args)
{
Console.WriteLine("Bir tuşa basınız...");
System.ConsoleKeyInfo KeyInfo = Console.ReadKey(true);
Console.WriteLine("\n" + KeyInfo.Key.ToString() + " tuşuna bastınız!..");
Console.ReadLine();
}
C#Yazdığımız programın çıktısı ise şöyle olacaktır.
Eğer basılan tuşa göre bir işlem gerçekleştirmek isterseniz, (örn. ESC tuşuna basıldığında uygulamanın kapanması gibi..) basit bir if yapısı ile bunu sağlayabilirsiniz.
if (KeyInfo.Key == ConsoleKey.Escape)
{
System.Environment.Exit(0);
}
C#Şimdi buraya kadar bir sorun yok, ancak programımız henüz CTRL, ALT ve SHIFT gibi tuşlara basıldığında bunu gösteremiyor. Bu tuşlara basıldığında da ekranda bir çıktı istiyorsak, aynı yapının Modifiers özelliğinden faydalanabiliriz.
static void Main(string[] args)
{
// CTRL + C basıldığında geçerli işlemin kesilmemesi için
Console.TreatControlCAsInput = true;
Console.WriteLine("Bir tuşa basınız...");
System.ConsoleKeyInfo KeyInfo = Console.ReadKey(true);
if ((KeyInfo.Modifiers & ConsoleModifiers.Alt) != 0)
{
Console.Write("ALT+");
}
if ((KeyInfo.Modifiers & ConsoleModifiers.Control) != 0)
{
Console.Write("CTRL+");
}
if ((KeyInfo.Modifiers & ConsoleModifiers.Shift) != 0)
{
Console.Write("SHIFT+");
}
Console.WriteLine(KeyInfo.Key.ToString() + " tuşuna bastınız!..");
Console.ReadLine();
}
C#Umarım faydalı olmuştur arkadaşlar, iyi çalışmalar..
Gizem
Emeğinize sağlık çok işime yaradı.
Teşekkürler