2016-03-31 21 views
1

Ben Bir winformdaki keydown işlevini diğer pencerelerden nasıl kullanırım?

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if(e.KeyCode== Keys.Z) 
     { 
      BarTimer.Value = 0; 
      timer1.Start(); 
      timer1.Interval = 500; 
      BarTimer.Minimum = 0; 
      BarTimer.Maximum = 80; 
     } 
    } 

kod

bu parça var Ve bu gayet güzel çalışıyor, ama ne zaman tam ekran uygulamada basın edebilmek istiyorum, bu yüzden benim ikinci monitörde ilerleme çubuğunu görebilirsiniz. İşe yarayacak bir özellik ya da bir şey var mı?

+0

Eğer yazarak odak şeklinde değil, ama başka bir ekranda iken, anahtarın yanıt vermeye ifade ediyor mu? –

+0

Evet öyle. – dvs

+0

Diğer ekran uygulama içinde mi, yoksa başka bir uygulamada olabilir mi? –

cevap

1

Tek bir anahtarsa, RegisterHotKey'i kullanabilirsiniz. Bu cevapta örnek kod var: how to use RegisterHotKey ve buna bağlı bir tane. Microsoft C++ belgeleri here'dur.

Tüm klavye girişlerini engellemek isterseniz, bir anahtar kanadına ihtiyacınız olacaktır. Ben google WH_KEYBOARD_LL ve SetWindowsHookEx öneririz. Ama bunu C# yapamazsın sanmıyorum; Sadece C/C++ ile yazılmış anahtar kancaları gördüm. Ayrıca bazı güvenlik duvarlarının da ilgisini çekmesine neden olacak - tüm klavye girişlerini engellemek potansiyel olarak düşmanca kabul edilebilir.

+0

Pekala, teşekkürler! – dvs

1

Merhaba Kod projesinde bulduğum güzel bir öğretici biliyorum. Böyle bir şeye ihtiyacım olduğunda benim için çalıştı.

http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook

Selamlar,

+0

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum Yaz] (/ review/düşük kaliteli yazılar/18997623) – Blackwood