2009-09-11 16 views
16

मैं एक साधारण सी प्रोग्राम लिखना चाहता हूं जो "कुंजी डाउन" और "की अप" दोनों घटनाओं के आधार पर अलग-अलग क्रियाएं करेगा। यह प्रोग्राम rxvt के अंदर से चलाया जाएगा।लिनक्स टर्मिनल अनुप्रयोगों में कुंजी प्रेस और कुंजी रिलीज इवेंट प्राप्त करना?

दोनों प्रमुख प्रेस और रिलीज़ तक पहुंचने के लिए मुझे किस पुस्तकालय या तंत्र का उपयोग करना चाहिए? क्या यह सच है कि /dev/tty पढ़ना केवल मुख्य रिलीज प्रदान करेगा? क्या यह टर्मकैप, टर्मिनो, एनसीआरएसईएस और स्लैंग के लिए भी सच है? टर्मिनल एप्लिकेशन के भीतर से इसे प्राप्त करने का कोई तरीका है?

उत्तर

3

मुझे नहीं लगता कि ncurses काम करेंगे। लिंक बेसिलव्स ने "अप तीर" कुंजी और "डाउन एरो" कुंजी के बारे में वार्ता प्रदान की, एक महत्वपूर्ण प्रेस और रिलीज नहीं।

4

यह सामान्य मामले में काम नहीं करेगा। एएनएसआई टर्मिनल (जिसमें से सभी अनुकरणकर्ता उतरते हैं) केवल प्रमुख "प्रेस" घटनाओं का प्रतिनिधित्व करते हैं। वे स्वतंत्र रूप से घटनाओं को नीचे/ऊपर रिकॉर्ड नहीं करते हैं।

यदि आपको निम्न स्तर की कीबोर्ड ईवेंट पहुंच की आवश्यकता है, तो उचित वातावरण वास्तव में एक जीयूआई प्रोग्राम है। यहां तक ​​कि एक वेब एप्लिकेशन में टर्मिनल की तुलना में महत्वपूर्ण घटनाओं के लिए क्लीनर पहुंच होगी।

7

निम्न लिंक कुंजीपटल कच्चे मोड का उपयोग करने में कुछ सहायता के हो सकते हैं जो आपको केवल मुख्य रिलीज के बजाय कीबोर्ड ईवेंट तक पहुंच प्रदान करेगा।

  1. यह लिनक्स जर्नल article
  2. SourceForge
  3. पर यह article और जब यह सब बुरा हो जाता है के लिए इस HOWTO

कच्चे मोड नुकसान आप से अपना खुद का रूपांतरण करना है कि है यद्यपि पात्रों को कोड स्कैन करें।

+2

+1 इस उत्तर के लिए धन्यवाद, मुझे टर्मिनल प्रोग्राम में कच्ची कीबोर्ड पहुंच की आवश्यकता थी और यह समाधान था! लेकिन किसी को याद रखना चाहिए कि कच्चे कीबोर्ड का उपयोग करके, आपका प्रोग्राम शास्त्रीय टर्मिनल प्रोग्राम की तरह "व्यवहार" नहीं करता है। उदाहरण के लिए जब इसे दूरस्थ मशीन पर चलाते हैं, तो आप मुख्य ईवेंट पंजीकृत नहीं कर सकते हैं। बस इसे ध्यान में रखें। – leemes

संबंधित मुद्दे