2012-04-30 24 views
6

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.

+1

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

+1

İş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

+0

[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) –

cevap

3

this da deneyebilirsiniz. Benim için çalıştı. Hatta yazdıklarını gelen sorun burada koymak kod parçası değil, klavye kanca kendisi gibi

İlgili konular