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. Bu sınıfı kullanabilmek için System.Windows.Forms
namespace'ini projenize dahil etmeniz gerekmektedir.
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.
SendKeys.Send(string keys);
keys
: Gönderilecek tuşları veya metni içeren bir dizedir.
Tuş Gösterimi ve Özel Karakterler
SendKeys
sınıfı, tuşları temsil etmek için özel bir sözdizimi kullanır. İşte bazı yaygın tuşların ve özel karakterlerin 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}
). - Tekrar Eden Tuşlar: Bir tuşu birden fazla kez göndermek için tuş kodundan sonra boşluk bırakarak tekrar sayısını belirtiriz. Örneğin,
{1 10}
10 kere "1" tuşuna basar.
Sık Kullanılan Tuşlar ve Gösterimleri
Anahtar | Kod |
---|---|
GERİ AL | {BACKSPACE} , {BS} veya {BKSP} |
SON | {END} |
BÜYÜK HARF TUŞU | {CAPSLOCK} |
DEL veya DELETE | {DELETE} veya {DEL} |
AŞAĞI OK | {DOWN} |
ENTER | {ENTER} veya ~ |
ESC | {ESC} |
YARDIM | {HELP} |
HOME | {HOME} |
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} |
PAUSE | {PAUSE} |
F1 - F24 | {F1} - {F24} |
BOŞLUK | {SPC} , {SPACE} veya {SPACEBAR} |
Sol Windows Tuşu | {LWIN} |
Sağ Windows Tuşu | {RWIN} |
Bağlam Menüsü Tuşu | {APP} |
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)
Özel Karakterlerin Gösterimi: Eğer +
, ^
, %
, ~
, (
, )
, [
, ]
, {
, }
gibi karakterleri literal olarak göndermek istiyorsanız, onları küme parantezleri içine almanız gerekir:
{+}
: Artı işareti{^}
: Şapka işareti{%}
: Yüzde işareti{~}
: Tilde işareti{(}
: Açık parantez{)}
: Kapalı parantez{[}
: Açık köşeli parantez{]}
: Kapalı köşeli parantez{{}
: Açık küme parantezi{}}
: Kapalı küme parantezi
Ö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; // Process.Start için
using System.Threading; // Thread.Sleep için
using System.Windows.Forms; // SendKeys için
public partial class Form1 : Form
{
private void buttonNotDefterineYaz_Click(object sender, EventArgs e)
{
// Not Defterini aç
Process.Start("notepad.exe");
// Not Defterinin açılması için biraz bekleyin (uygulamanın yüklenmesi için zaman tanıyın)
Thread.Sleep(500); // Yarım saniye beklet
// Not Defterine metin yazın ve Enter tuşuna basın
SendKeys.Send("Merhaba Webkolog.net{ENTER}");
SendKeys.Send("Bu bir testtir.");
}
}
Örnek 2: Bir Formdaki TextBox'a Metin Yazma
using System.Windows.Forms;
public partial class Form1 : Form
{
// Form yüklendiğinde veya bir buton tıklamasında kullanılabilir
private void Form1_Load(object sender, EventArgs e)
{
// Form üzerinde bir textBox1 kontrolü olduğunu varsayalım
if (this.Controls.ContainsKey("textBox1"))
{
TextBox textBox1 = (TextBox)this.Controls["textBox1"];
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;
public partial class Form1 : Form
{
private void buttonPencereKapat_Click(object sender, EventArgs e)
{
// Aktif olan pencereyi Alt+F4 ile kapat
SendKeys.SendWait("%{F4}"); // % Alt tuşunu, {F4} F4 tuşunu temsil eder
}
}
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ı ve ilgili uygulamanın bu tuşlara tepki vermesini beklemek istiyorsak, SendKeys.SendWait()
metodunu kullanabiliriz. Bu metot, tuşlar işlenene kadar çağrı yapan thread'i askıya alır.
SendKeys.SendWait("Webkolog"); // "Webkolog" metnini gönder ve işlenmesini bekle
SendKeys.SendWait("{1 10}"); // 10 kere "1" tuşuna bas ve işlenmesini bekle
Dikkat Edilmesi Gerekenler
SendKeys
, aktif olan pencereye veya kontrole girdi gönderir. Bu nedenle, doğru pencerenin veya kontrolün aktif olduğundan emin olmalıyız.- Farklı uygulamalar, tuşlara farklı şekillerde tepki verebilir. Bu nedenle,
SendKeys
kullanırken uygulamanın davranışını test etmek önemlidir. SendKeys
, kullanıcı etkileşimini simüle ettiği için bazı durumlarda beklenmedik sonuçlara yol açabilir. Özellikle kritik işlemlerde dikkatli kullanılmalıdır.SendKeys
metodu, farklı dil ve klavye düzenlerinde sorunlara neden olabilir. Bu nedenle, uluslararası uygulamalarda kullanırken dikkatli olunmalıdır.
Evet sevgili Webkolog.net okurları, bu yazımızda 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 detaylı bir şekilde inceledik. SendKeys
, otomasyon, test ve erişilebilirlik gibi çeşitli senaryolarda işimizi kolaylaştırabilir. Ancak, bu sınıfı kullanırken dikkatli olmalı ve uygulamanın davranışını iyice test etmeliyiz. Umarım bu bilgiler, C# .NET Framework 4 ile uygulamalar geliştirirken size yardımcı olur. Bir sonraki yazımda, C# dilinin diğer önemli yapı taşlarını keşfetmeye devam edeceğiz. Webkolog.net'i takipte kalın!
Hepinize otomasyon dolu ve başarılı kodlama deneyimleri dilerim!
0 yorum:
Yorum Gönder