क्या विंडोज कंसोल में महत्वपूर्ण घटनाएं प्राप्त करने का कोई तरीका है? मुझे जीयूआई के बिना जल्दी से कीडाउन और कीप घटनाओं को पाने का एक तरीका चाहिए। मैंने getch() का उपयोग करने का प्रयास किया है, लेकिन इसे कुंजीपटल नहीं मिलते हैं और प्रतीक्षा करने के लिए एक कुंजी दबाए जाने तक प्रतीक्षा की जाती है।सी ++ कंसोल कीबोर्ड घटनाएं
उत्तर
आप GetKeyState
या GetAsyncKeyState
का उपयोग कर सकते हैं, लेकिन यह आपको कीडाउन/कीप घटनाएं नहीं देगा। यह केवल आपको बताएगा कि वर्तमान में कौन सी कुंजी नीचे हैं।
तो यदि आपको वास्तव में कीडाउन/कीप घटनाएं प्राप्त करने की आवश्यकता है, तो आप एक हुक इंस्टॉल कर सकते हैं। एक कंसोल विंडो में एक विंडो हैंडल है जिसका स्वामित्व विंडोज़ में कोड और एक संदेश पंप है, जिसका भी विंडोज़ में कोड है।
GetConsoleWindow का उपयोग कर आप कंसोल विंडो के विंडो हैंडल प्राप्त कर सकते हैं तो कंसोल विंडो पर भेजे गए संदेशों को सुनने के लिए SetWindowsHookEx का उपयोग करके WH_CALLWNDPROC
हुक इंस्टॉल करें।
आप इसके बजाय WH_MSGFILTER
हुक आज़मा सकते हैं। मुझे नहीं पता कि यह कंसोल विंडोज़ के लिए काम करता है, लेकिन अगर यह काम करता है तो इसे अनदेखा करने के लिए कम संदेश उत्पन्न होंगे।
ReadConsoleInput()
API का उपयोग करें। KEY_EVENT
की घटनाओं के लिए देखें। यह सभी कीडाउन घटनाओं (Ctrl-key, shift-key, रोक-कुंजी को पढ़ा नहीं जा सकता) के लिए काम नहीं करेगा, लेकिन अधिकांश को पढ़ा जा सकता है।
अवरुद्ध करने से बचने के लिए GetNumberOfConsoleInputEvents
का उपयोग करें।
कई तरीके हैं। GetKeyboardState सबसे स्पष्ट में से एक होगा।
मैं सिर्फ उत्सुक था, इस तरह के एक तार्किक प्रश्न के बारे में Google, पर कोई स्पष्टीकरण नहीं है, इसलिए किसी को इसे यहां पूछना है। इसलिए मैं के लिए googled: "कीबोर्ड की घटनाओं सांत्वना आवेदन" और लगता है क्या ... पहले 2 लिंक दिलचस्प हैं (लेकिन दुर्भाग्य से, वास्तव में नहीं आपके प्रश्न का उत्तर):
- Processing mouse/keyboard input on MSDN।
- Console event handlers (जैसे Ctrl-C और विंडो बंद बटन)।
मैंने एक ही चीज़ को अनुमान लगाया कि क्या ... तीसरा लिंक इस पृष्ठ पर इंगित करता है। – avakar
तुम भी SetConsoleCtrlHandler
- 1. सी #: थ्रेड-सुरक्षित घटनाएं
- 2. सी ++ में कस्टम घटनाएं?
- 3. कंसोल ऐप में जावा कीबोर्ड इनपुट पार्सिंग
- 4. Google क्रोम का जावास्क्रिप्ट कंसोल कीबोर्ड शॉर्टकट
- 5. ^सी/कीबोर्ड इंटरप्ट
- 6. सी ++ से सी #: कंसोल टू कंसोल।
- 7. साइगविन + कंसोल 2 ctrl-c कीबोर्ड काम नहीं कर रहा
- 8. तीर कुंजी घटनाएं
- 9. SendInput() कीबोर्ड अक्षरों सी/सी ++
- 10. ग्रहण: कंसोल के बीच स्विच करने के लिए कीबोर्ड शॉर्टकट?
- 11. वैश्विक कीबोर्ड हुक्स (सी #)
- 12. सी #: कीबोर्ड हुक
- 13. कौन सी घटनाएं बंधी हुई हैं?
- 14. मैनिपुलेशन घटनाएं
- 15. सी # कंसोल अनुप्रयोग में कंसोल विंडो छुपाएं
- 16. jQuery - कीबोर्ड दबाएं - कीबोर्ड
- 17. backbone.js घटनाएं
- 18. यूआईस्लाइडर घटनाएं
- 19. सी # कंसोल एप्लिकेशन
- 20. Win32 कंसोल अनुप्रयोग (सी)
- 21. लिनक्स सी कंसोल एप्लिकेशन
- 22. सी # कंसोल उपयोगकर्ता इनपुट
- 23. सी # कंसोल एप्लिकेशन आइकन
- 24. सी # कंसोल एप्लिकेशन - इसे
- 25. प्रकाशन सी # कंसोल अनुप्रयोग
- 26. सी ++/एसडीएल कंसोल विंडो
- 27. सी #: जांचें कि कंसोल
- 28. स्वरूपण सी ++ कंसोल आउटपुट
- 29. एडोब फ्लेक्स घटक घटनाएं
- 30. javafx पसंदबॉक्स घटनाएं
आप कहते हैं, लेकिन समय के सबसे अधिक (है कि मैं के बारे में पता) खिड़कियों पर आप एक खिड़की के अंदर एक कंसोल का उपयोग कर रहे हैं "एक जीयूआई बिना" कोशिश कर सकते हैं। जिन मामलों में आपके पास खिड़की है, आप उस विंडो को हुक कर सकते हैं और इसके संदेशों को कैप्चर कर सकते हैं। – Zac