ANASAYFA | BLOG | SORU CEVAP | REFERANSLARIM | DOWNLOAD | HAKKIMDA | İLETİŞİM | ARAMA
C# ARKAPLANDA KLAVYEDE BASILAN TUŞU YAKALAMA

klayveTusuDinlemeBazen klavyeden basılan tuşu yakalamamız ve bu basılan tuşa göre işlem yapmamız gerekebilir. Bazı durumlarda ise basılan tuşu yutmamız ve geçersiz göstermemiz gibi durumlar ile karşılaşabiliriz. Böyle durumlarda klavye den istenilen tuşun basılıp basılmadığını arkaplanda çalışan uygulamamız ile takip ederek ilgili metodlarımızı tetikleyebiliriz. Öncelikle aşağıdaki linkten ilgili class ı indirerek projemize eklememiz gerekiyor. Daha sonrasında ise projemizde kullanacağımız sayfaya

 using FarukUNAL;

ekleyerek bu class ı referans göstermemiz gerekir. Şimdi ilk olarak aşağıdan bu class ı ekleyerek projemize ekleyelim

FK-gizle

klawyeDinle.rar

Şimdi de projemize global olarak ilgili class ımızdan bir değişken türetiyoruz

globalKeyboardHook klavyeDinleyicisi = new globalKeyboardHook();
 

Daha sonrasında ise klavyeden hangi tuşlara basıldığında programımızın tetiklenmesini istiyorsak onları ayarlamamız gerekiyor. Bunun içinde aşağıdaki  fonksiyonunun içerisinde ilgili tuşları ayarlayabilirsiniz. Daha sonrasında da bu fonksiyonu programın açlışına ekliyoruz ki program açılır açılmaz klavyeyi dinlemeye başlayalım

 
    public Form1()
    {
        InitializeComponent();
        DinlenecekTuslariAyarla();
 
    }
 
    public void DinlenecekTuslariAyarla()
    {
        // hangi tuşları dinlemek istiyorsak burada ekliyoruz
        // Ben burada F,K ve M harflerine basılınca tetiklenecek şekilde ayarladım
        klavyeDinleyicisi.HookedKeys.Add(Keys.F);
        klavyeDinleyicisi.HookedKeys.Add(Keys.K);
        klavyeDinleyicisi.HookedKeys.Add(Keys.M);
 
        //basıldığında ilk burası çalışır
        klavyeDinleyicisi.KeyDown += new KeyEventHandler(islem1);
        //basıldıktan sonra ikinci olarak burası çalışır
        klavyeDinleyicisi.KeyUp += new KeyEventHandler(islem2);
    }

Yorumlara da yazdığım gibi eklediğimiz class dan türettiğimiz değişkenin tuş yakalamada kullanacağımız 2 metodu var

  • KeyDown: İlgili tuşa basıldığı an burası tetiklenir
  • KeyUp: İlgili tuşa basıldıktan sonra burası tetiklenir

Yukarıdaki kırmızı ile belirttiğim islem1 ve islem2 ise bu metodlarda tetiklenecek olan metodları belirtiyor. Bu metodları kendimiz tanımlayarak buraya ilişkilendiriyoruz ve tetiklendiğinde bu metodların içerisine yazdığımız komutlar çalışıyor

 
    void islem1(object sender, KeyEventArgs e)
    {
        //Yapılmasını istediğiniz kodlar burada yer alacak
        //Burası tuşa basıldığı an çalışır
 
 
 
        //Eğer buraya gelecek olan tuşa basıldığında
        //o tuşun normal işlevi yine çalışsın istiyorsanız
        //e.Handled değeri false olmalı
        //eğer ilgili tuşa basıldığında burada yakalansın
        // ve devamında tuş başka bir işlev gerçekleştirmesin
        //istiyorsanız bu değeri true yapmalısınız
        e.Handled = false;
    }
 
    void islem2(object sender, KeyEventArgs e)
    {
        //Yapılmasını istediğiniz kodlar burada yer alacak
        // Burası ilgili tuşlara basılıp çekildikten sonra çalışır
 
 
 
        //Eğer buraya gelecek olan tuşa basıldığında
        //o tuşun normal işlevi yine çalışsın istiyorsanız
        //e.Handled değeri false olmalı
        //eğer ilgili tuşa basıldığında burada yakalansın
        // ve devamında tuş başka bir işlev gerçekleştirmesin
        //istiyorsanız bu değeri true yapmalısınız
        e.Handled = true;
    }

Bu metodlarda da dikkat etmeniz gereken nokta el alttaki e.Handled kısmı. Buraya atadığımız değere göre örneğin burayı true yaptığımızda belirttiğimiz tuşa basıldığı anda kullanıcı mesela not defterinde yazı yazıyor ise basılan tuş işlemeyecek, not defterine yazmayacak fakat Bizim metod da belirttiğimiz işlemler gerçekleşecektir, ama burayı false olarak ayarlar isek hem kullanıcının bastığı tuş işlevi çalışacak hemde kendi metodumuzda istediğimiz komutlar işlem gerçekleştirecektir

Uygulamanız arkaplanda çalışıyor da olsa her zaman basılan tuşları takip edecek ve bunlara göre çalışacaktır. Uygulamananız nasıl çalışsın istiyorsanız kendinize göre ayarlayabilirsiniz. Bu komutlar ile her daim basılan tuşları yakayarak kullanabilirsiniz




Diğer Yazılarımdan Seçmeler...