13 Mayıs 2012 Pazar

C# ile SendKeys

Merhaba değerli Webkolog.net takipçileri, bugünkü yazımızda C# .NET Framework 4 ile uygulamalarımızda diğer uygulamalara veya kontrollere klavye girdisi göndermemizi sağlayan SendKeys sınıfını yakından inceleyeceğiz. SendKeys sınıfı, otomasyon, test veya erişilebilirlik gibi çeşitli senaryolarda oldukça faydalı olabilir.

SendKeys Sınıfı Nedir?

SendKeys sınıfı, Windows'a klavye ile tuşlara basılmış gibi mesajlar göndermemizi sağlayan statik bir sınıftır. Bu sınıf sayesinde, aktif olan pencereye veya belirli bir kontrole metin gönderebilir, özel tuşlara (örneğin, Enter, Ctrl, Alt) basabilir ve tuş kombinasyonları (örneğin, Ctrl+C, Alt+F4) gönderebiliriz.

SendKeys.Send Metodu

SendKeys sınıfının en önemli metodu SendKeys.Send() metodudur. Bu metot, belirtilen tuşları veya metni aktif olan pencereye gönderir.

Sözdizimi:

SendKeys.Send(string keys);

  • keys: Gönderilecek tuşları veya metni içeren bir dizedir.

Tuş Gösterimi

SendKeys sınıfı, tuşları temsil etmek için özel bir sözdizimi kullanır. İşte bazı yaygın tuşların gösterimi:

  • Metin: Gönderilecek metin doğrudan yazılır (örneğin, "Merhaba").
  • Özel Tuşlar: Özel tuşlar küme parantezleri içinde belirtilir (örneğin, {ENTER}, {TAB}, {ESC}).
  • Tuş Kombinasyonları: Tuş kombinasyonları için + (Shift), ^ (Ctrl) ve % (Alt) karakterleri kullanılır (örneğin, ^+C veya ^C Ctrl+C'yi temsil eder).

Sık Kullanılan Tuşlar ve Gösterimleri

İşte SendKeys ile sık kullanılan tuşlardan bazıları:

  • {ENTER}: Enter tuşu
  • {TAB}: Tab tuşu
  • {ESC}: Escape tuşu
  • {BACKSPACE} veya {BS}: Backspace tuşu
  • {DELETE} veya {DEL}: Delete tuşu
  • {HOME}: Home tuşu
  • {END}: End tuşu
  • {PAGEUP}: Page Up tuşu
  • {PAGEDOWN}: Page Down tuşu
  • {UP}: Yukarı ok tuşu
  • {DOWN}: Aşağı ok tuşu
  • {LEFT}: Sol ok tuşu
  • {RIGHT}: Sağ ok tuşu
  • {F1} - {F12}: Fonksiyon tuşları
  • {PRTSC}: Print Screen tuşu
  • {CAPSLOCK}: Caps Lock tuşu
  • {NUMLOCK}: Num Lock tuşu
  • {SCROLLLOCK}: Scroll Lock tuşu

Tuş Kombinasyonları

SendKeys ile tuş kombinasyonları göndermek için aşağıdaki karakterleri kullanırız:

  • +: Shift tuşu (örneğin, +A Shift+A, +() Shift+Parantez Aç)
  • ^: Ctrl tuşu (örneğin, ^C Ctrl+C)
  • %: Alt tuşu (örneğin, %F4 Alt+F4)

Örnekler

İşte SendKeys sınıfının farklı senaryolarda nasıl kullanılacağına dair örnekler:

Örnek 1: Not Defterine Metin Yazma

using System.Diagnostics;
using System.Windows.Forms;
// Not Defterini aç
Process.Start("notepad.exe");
// Not Defterinin açılması için biraz bekleyin
Thread.Sleep(500);
// Not Defterine metin yazın
SendKeys.Send("Merhaba Webkolog.net{ENTER}");
SendKeys.Send("Bu bir testtir.");

Örnek 2: Bir Formdaki TextBox'a Metin Yazma

using System.Windows.Forms;
//Formun yüklendiği olayda
private void Form1_Load(object sender, EventArgs e)
{
    textBox1.Focus(); // TextBox'a odaklan
    SendKeys.Send("Bu metin TextBox'a yazıldı.");
}

Örnek 3: Tuş Kombinasyonu Gönderme (Alt+F4 ile Pencereyi Kapatma)

using System.Windows.Forms;
//Formun yüklendiği olayda
private void Form1_Load(object sender, EventArgs e)
{
    //Formu kapat
    SendKeys.Send("%{F4}");
}

SendKeys.SendWait Metodu

SendKeys.Send() metodu, tuşları arka planda gönderir ve hemen geri döner. Eğer tuşların gönderilmesinin tamamlanmasını beklemek istiyorsak, SendKeys.SendWait() metodunu kullanabiliriz.

Sözdizimi:

SendKeys.SendWait(string keys);

Ek Notlar

  • SendKeys.Send("{1 10}"); //10 kere 1 yazmaya yarar
  • SendKeys.SendWait("%({F4})"); //Alt + F4 kısayolunu gönderir

Tuş ve Kod Eşleşmeleri

Aşağıdaki tabloda, SendKeys ile kullanılan bazı tuşların ve kodlarının eşleşmeleri yer almaktadır:

TUŞ

KOD

GERİ AL

{BACKSPACE}, {BS} veya {BKSP}

SONUNDAN

{END}

BÜYÜK HARF TUŞU

{CAPSLOCK}

DEL veya DELETE

{DELETE} veya {DEL}

AŞAĞI OK

{DOWN}

END

{END}

ENTER

{ENTER} veya ~

YARDIM

{HELP}

INS veya Ekle

{INSERT} veya {INS}

SOL OK

{LEFT}

NUM KILIDI

{NUMLOCK}

SAYFA AŞAĞI

{PGDN}

SAYFA YUKARI

{PGUP}

PRINT SCREEN

{PRTSC}

SAĞ OK

{RIGHT}

SCROLL LOCK

{SCROLLLOCK}

TAB

{TAB}

YUKARI OK

{UP}

F1 - F16

{F1} - {F16}

Shift

+

Ctrl

^

Alt

%

Açık Parantez

{(}

Kapalı Parantez

{})

Bu yazımda, C# .NET Framework 4 ile SendKeys sınıfının ne olduğunu, nasıl kullanıldığını ve nelere dikkat edilmesi gerektiğini anlattım. Umarım faydalı olmuştur.

Webkolog'u takipte kalın!

Hepinize bol kodlu günler dilerim!

0 yorum:

Yorum Gönder