2012-04-30 25 views
6

मुझे प्रश्न के लिए बेहतर शीर्षक नहीं पता है, लेकिन मैं अपनी समस्या का वर्णन करूंगा।सी #: कीबोर्ड हुक

मैं अनुप्रयोग है कि एक एमपी 3 प्लेयर की तरह काम करता पर काम कर रहा हूँ, यह मल्टीमीडिया कुंजी का उपयोग करता है खेलने के लिए/रोकते हैं, गीत बंद करो, मैं वास्तव में यह काम करते हैं लेकिन FormApplication में शीर्ष [फोकस्ड] होना चाहिए बनाया

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); 
    } 

तो मुझे क्या करने की ज़रूरत है: मल्टीमीडिया कुंजी को पृष्ठभूमि पर बनाने के बावजूद काम करना है और शीर्ष या केंद्रित नहीं है, जैसे कि Winamp और Windows Media Player कैसे काम करता है।

मैंने इंटरनेट पर बहुत कुछ खोजा लेकिन उनमें से अधिकतर मुझे उस तरीके के समान तरीके प्रदान करते हैं जिसका मैं उपयोग कर रहा हूं।

अग्रिम में आपकी सहायता के लिए बहुत बहुत धन्यवाद।

+1

तो, आपने जो लिखा है उससे भी, ऐसा लगता है कि समस्या आपके द्वारा यहां दिए गए कोड के हिस्से में नहीं है, लेकिन कीबोर्ड हुक में ही है। आप ग्लोबल कीबोर्ड हुक कैसे पकड़ रहे हैं? ऐसा लगता है कि आपके पास सिर्फ स्थानीय एप्लिकेशन हुक है, न कि वैश्विक ... – gillyb

+1

यहां एक लेख है जिसे मैंने इसे लागू करने के लिए पढ़ा है, और इसे सही करने में कामयाब रहा ... http://blogs.msdn.com/b /toub/archive/2006/05/03/589423.aspx – gillyb

+0

संभावित डुप्लिकेट [अनुप्रयोग को छोटा होने पर कैप्चर मीडिया कुंजी] [http://stackoverflow.com/questions/7196883/capture-media-keys-when-plication- है-कम से कम) –

उत्तर

3

आप this भी आजमा सकते हैं। यह मेरे लिए काम किया।