C# Klavyeden Basılan Tuşa İşlem Atama

TarganLibra

Uzman üye
26 Ara 2015
1,181
2
Beşiktaş
C# Klavyeden Basılan Tuşa İşlem Atama // Stajyer Asistan Kulübü

Tuşa İşlem Atama – Form Ayarı

Öncelikle projemize başlamadan önce Form’dan KeyPreview özelliğini True yapmamız gerekiyor. Bu ne işe yaracak olur derseniz uygulamanızı arka planda bile tuşu algılayıp atadığınız işlemi gerçekleştirecektir. Peki KeyPreview nasıl True değerine getireceğiz ?

Bunun için isterseniz projenizin Properties kısmından KeyPreview kısmını True yapabilir veya Form Load kısmına;

Kod:
KeyPreview = true;

ekleyebilirsiniz. Bu 2 yöntemden birini yaptıktan sonra arka plan tuş kontrollerine erişmiş olacaksınız. Şimdi bize gerekli olan araçları projemize dahil edelim



Gerekli Araçlar

Bu projemizde bizlere eşlik edecek bazı yardımcı araçlar bulunmakta. Aşağıdaki araçları projemize dahil edelim.

Timer
Sadece Timer kullanarak istediğimiz işlemi yaptırabiliriz. Şunu belirtmek isteriz ki Timer hızını tamamen kendinize göre ayarlamanızı tavsiye ederiz. Bizim tavsiyemizi soracak olursanız 250ms bastığınız tuşu yakalamada ideal olacağını düşünmekteyiz. Biz kendi Timer hızımı 250ms olarak ayarlayacağız. Timer’ımızı ekledikten sonra Properties kısmından aşağıdaki ayarları yapınız.

Enabled: True (İsterseniz Form Load kısmına timer1.Start(); yazarak da aktif edebilirsiniz)

Interval: 250

Yukarıdaki ayarları yaptıktan sonra bize GetAsyncKeyState fonksiyonu gerekiyor. Peki bu fonksiyon ne işe yarıyor ?



GetAsyncKeyState – Ne İşe Yarar ?

Bu fonksiyon bizim bastığımız tuşu algılamamızı sağlar. Atıyorum klavyeden F2 tuşuna bastınız, bu bastığınız tuşu algılayıp eklediğiniz işlemi yerine getirmesini sağlayabilir. Peki bu fonksiyonu nasıl projeme dahil edeceğim diye soracak olursanız aşağıdaki kodu projenize dahil etmeniz gerekir.


Kod:
public partial class Form1 : Form
{


Hemen altına aşağıdaki kodu yapıştırın;


Kod:
[DllImport("User32.dll")]
private static extern short GetAsyncKeyState(System.Int32 vKey);

Artık fonksiyonumuzu projemize dahil etmiş bulunmaktayız. Dahil ettikten sonra DllImport hatası ile karşılacaksınız bu hatayı en üstteki using olan kütüphanelerin oraya,


Kod:
using System.Runtime.InteropServices;


ekleyerek bu hatayı da ortadan kaldırmış olacaksınız. Şimdi tuşlara nasıl işlem yaptıracağımıza yakından bakalım.


Timer’a Kodları Ekleyin

Eklemiş olduğumuz Timer’ımıza çift tıklayarak aşağıdaki kodlarımızı yapıştıralım. Bu işlemde F2 tuşuna bir işlem atamış bulunmaktayız. Şimdi eklemiş olduğumuz koda bakalım;


Kod:
if (GetAsyncKeyState(0x71) != 0)
{
	MessageBox.Show("F2 Tuşuna Bastınız !", "Turk Hack Team");
}
Yukarıdaki kodu Timer’ınıza ekledikten sonra test edebilirsiniz. F2 tuşuna bastığınızda size bir mesaj verecektir.

Şimdi önemli olan bir kaç hususa değinmek istiyorum. Burada önemli olan kısım fonksiyonumuzda ki (0x71) kısmıdır. Bu kısım atayacağınız tuşu belirler. Yani (0x71 = F2) tuşuna denk gelmektedir. Bu tuş işlemine Virtual-Key diyoruz. Bu kodlara ve nasıl başka tuşa işlem atayacağınızı görmek için Virtual-Key Codes bağlantısına tıklayarak gidebilirsiniz. Tıkladığınız bağlantıda tüm klavye tuşlarını görebilirsiniz.​
 
Son düzenleme:

Gbmdpof

Kıdemli Üye
23 Eyl 2016
2,001
11
Türkçe 1e1 anlatımını paylaştım zaten :RpS_blink::yo

Hayır, siz Timer’ın her tick eventinde o tüşün basılı olup olmadığını kontrol etmişsiniz. Benim attığım şeyde ise tuş tıklamaları hook olarak atanıp bir tuşa tıklandığında çalışan method yazılmış.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.