C# Klavyeden Basılan Tuşa İşlem Atama // Stajyer Asistan Kulübü
Tuşa İşlem Atama Form Ayarı
Öncelikle projemize başlamadan önce Formdan 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;
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.
Hemen altına aşağıdaki kodu yapıştırın;
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,
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.
Timera 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;
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.
Öncelikle projemize başlamadan önce Formdan 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.
Timera 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");
}
Ş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: