C# ile Mouse Click Komutu Gönderme

23 Eki 2015 · 2 dk okuma süresi

Bu dersimizde C# ile imleci istediğimiz koordinata tıklama komutunu kod ile nasıl gönderebileceğimizi göreceğiz.

Başlamadan önce bu işlem için ‘User32’ ismindeki sistem DLL dosyasını kullanacağımızı belirtelim. DLL dosyalarını kullanmakla ilgili ayrıntılı bilgiyi bulabileceğiniz MSDN dökümanını yazının en alt kısmına link olarak ekledim.

Şimdi kodları yazmaya başlayalım. Öncelikle sistem DLL dosyasını sınıfımızın hemen altına altta belirttiğim şekilde import ediyoruz. Gerekli açıklamaları yorum satırlarını kullanarak yazdım.

[DllImport("user32.dll")] // Burada DLL dosyasını import ediyoruz

// DLL'den çağrılacak olan fonksiyonu programa extern ile bildiriyoruz
static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);

// Burada sol tıklamanın down kodunu hex türünden değişkene aktarıyoruz(basılı olma durumu).
private const int MOUSEEVENTF_LEFTDOWN = 0x0002;

// Burada sol tıklamanın up kodunu hex türünden belirtiyoruz(basıldıktan sonra bırakılma durumu).
private const int MOUSEEVENTF_LEFTUP = 0x0004;

Yaptıklarımızı şöyle bir açıklayıcı şekilde sıralayalım:

  1. Programın üst kısmında DLL dosyasını import ettik.
  2. Daha sonra tanımladığımız DLL dosyasının içindeki ‘mouse_event’ ismindeki fonksiyonu programa bildirdik.
  3. Daha sonra tıklama tetikleyicileri olan LEFT_DOWN(farenin sol tuşunun basılı olma durumu) ve LEFT_UP(farenin sol tuşunun bırakılma durumu) komutlarının HEX karşılığını değişkenlere kaydettik.

Umarım sizlere 3 aşamada ne yaptığımızı açıklayabilmişimdir. Şimdi ise tıklama işlemini gerçekleştirecek olan fonksiyonların kullanımına geçelim. Yani tıklama kodunu yazalım.

// İlk satırda fareye sol tuşun basılmasını sağladık.
mouse_event(MOUSEEVENTF_LEFTDOWN, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
// İkinci satırda ise az önce basılan mouse tuşunu bırakılmasını sağladık.
mouse_event(MOUSEEVENTF_LEFTUP, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);

// Sonuç olarak üstteki 2 kod satırı tıklama işlemini yapmamızı sağladı.

Not: Tıklama işlemi bilgisayarda farenin tuşuna basmanız ve ardından çekmenizle tetiklenir. Yani ilk önce tuşa basarsınız(down) daha sonra çekersiniz(up).

Anlattıklarım dışında fonksiyon içinde bilmeniz gereken diğer şey ise fonksiyon içine 2. ve 3. parametre olarak girdiğimiz imlecin tıklamasını istediğimiz X ve Y koordinatlarıdır. Biz bu parametrelere imlecin bulunduğu konuma otomatik tıklama yaptırdık.


Bkz: DLL import etmek ile ilgili MSDN dökümanına buradan ulaşabilirsiniz.