2010-12-07 12 views
7

hereसेटिंग आवेदन चौड़ा हॉटकी

मैं आवेदन चौड़ा हॉटकी ऐसी है कि उपयोगकर्ता एक के किसी भी बच्चे खिड़की पर एक हॉटकी प्रेस यदि सेट करना चाहते हैं सी # में पूरे सिस्टम में वैश्विक हॉटकी सेट करने के लिए एक पोस्ट है आवेदन, एक विशेष खिड़की इसे प्राप्त और संसाधित करेगा।

धन्यवाद।

उत्तर

6

आप अपने आवेदन के लिए मूल फॉर्म बना सकते हैं और keypreview प्रॉपर्टी को सत्य में सेट कर सकते हैं और कीडाउन इवेंट को संभाल सकते हैं ताकि आपके सभी रूपों में एक ही कुंजी परिभाषा होगी।

आप अपने फॉर्म के लिए हॉटकी पंजीकृत करने के लिए निम्न दिनचर्या का भी उपयोग कर सकते हैं लेकिन इस विधि में, आपको प्रत्येक प्रपत्र के लोड ईवेंट पर एक ही विधि को कॉल करने की आवश्यकता होगी।

protected override bool ProcessCmdKey(ref Message message, Keys keys) 
{ 
    switch (keys) 
    { 
     case Keys.F2 | Keys.Control: 
      //Process action here. 
      return false; 
    } 

    return false; 
} 

आप उपयोगकर्ता32.dll से निम्न अप्रबंधित विधियों का भी उपयोग कर सकते हैं लेकिन निश्चित रूप से मैं इसका सुझाव नहीं दूंगा।

static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint virtualKey); 
private static extern bool UnregisterHotKey(IntPtr hWnd, int id); 
+0

मैंने रजिस्टरहोटकी के साथ प्रयास किया, लेकिन चूंकि यह सिस्टम-व्यापी काम करता है, इसलिए मैं अन्य एप्लिकेशन या उसी एप्लिकेशन के अन्य उदाहरण में प्रासंगिक कुंजी का उपयोग नहीं कर सकता। – Liton

+0

यदि आप केवल इसे एप्लिकेशन-व्यापी काम करना चाहते हैं तो आपको सामान्य आधार फ़ॉर्म दृष्टिकोण का उपयोग करना चाहिए। – EricLaw