Soru için daha iyi bir başlık bilmiyorum, ama sorunumu göstereceğim.C#: Klavye Kancası
Bir MP3 çalar gibi davranır uygulama üzerinde çalışıyorum, o/duraklatmak şarkıyı durdurmak için Multimedya tuşları kullanır , ben aslında o iş ama FormApplication [Odaklı] üst olmalıdır yapılan
protected override void WndProc(ref Message msg)
{
if (msg.Msg == 0x319) // WM_APPCOMMAND message
{
// extract cmd from LPARAM (as GET_APPCOMMAND_LPARAM macro does)
int cmd = (int)((uint)msg.LParam >> 16 & ~0xf000);
switch (cmd)
{
case 13: // APPCOMMAND_MEDIA_STOP constant
MessageBox.Show("Stop");
break;
case 14: // APPCOMMAND_MEDIA_PLAY_PAUSE
MessageBox.Show("Play/Pause");
break;
case 11: // APPCOMMAND_MEDIA_NEXTTRACK
MessageBox.Show("Next");
break;
case 12: // APPCOMMAND_MEDIA_PREVIOUSTRACK
MessageBox.Show("Previous");
break;
default:
break;
}
}
base.WndProc(ref msg);
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
Message m = new Message();
m.Msg = e.KeyChar;
WndProc(ref m);
}
Yani ben yapmak gerekenler: yapma multimedya tuşları programı arka plan üzerinde ve sadece winamp ve Windows Media Player işleyişi gibi, üst veya odaklanmış üzerinde olmasa bile çalışır.
internette bir sürü arandı ama bunların çoğu bana ben kullanıyorum benzer bir yol sağlar.Yardımlarınız için şimdiden çok teşekkür ederim.
Yani, öyle görünüyor. Genel klavye kancasını nasıl yakalıyorsunuz? Görünüşe göre sadece yerel bir uygulama kancası var ve küresel bir değil ... – gillyb
İşte bunu uygulamak için okudum bir makale ve doğru almayı başardı ... http://blogs.msdn.com/b /toub/archive/2006/05/03/589423.aspx – gillyb
[Uygulama Azaltıldığında Medya Anahtarlarını Yakalama] 'nın olası kopyası (http://stackoverflow.com/questions/7196883/capture-media-keys-when-application- olduğu minimize) –