2012-05-09 16 views
5

मेरे पास एक ही मशीन में दो यूएसबी कीबोर्ड प्लग किए गए हैं। मैं जावा एप्लिकेशन विकसित कर रहा हूं। क्या जावा एप्लिकेशन को अलग-अलग यूएसबी कीबोर्ड से अलग करने की अनुमति देने के लिए वैसे भी है? (यानी http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html जैसा कुछ है लेकिन यूएसबी पैरामीटर के साथ मैं जानता हूं कि यह कौन सा यूएसबी डिवाइस आया है?)जावा दो अलग-अलग कीबोर्ड के अलग-अलग इनपुट

धन्यवाद!

उत्तर

5

यह अकेले जावा के साथ संभव नहीं है।

लेकिन तीसरे पक्ष के उपकरण हैं जो कीबोर्ड की चाबियाँ रीमेप कर सकते हैं। HID macros एक आवेदन है। लेकिन यह केवल कुंजी प्रेस के साथ काम करता है, कुंजी-अप और डाउनडाउन ईवेंट नहीं। यह इसकी उपयोगिता को सीमित करता है लेकिन आपके उपयोग के लिए पर्याप्त हो सकता है।

यदि आप गहरी खुदाई करना चाहते हैं तो आपको विंडोज़ पर RAW Input API का उपयोग करने की आवश्यकता है जो आप चाहते हैं। Using Raw Input from C# to handle multiple keyboards शीर्षक कोड प्रोजेक्ट पर पहले से ही एक अच्छा उदाहरण है जो सही API उपयोग पर कुछ प्रकाश डालता है।

+0

मैं इस जवाब को वोट दूंगा, लेकिन मुझे ऐसा करने के लिए 15 प्रतिष्ठा की कमी है। – user1383359

+0

हाहा, यह ठीक है। इसे स्वीकार करने के लिए धन्यवाद। आशा है कि समाधान आपके लिए काम करता है। – Simon

4

मुझे यहां जवाब देने में बहुत देर हो सकती है क्योंकि यह प्रश्न पुराना है। लेकिन जब से मुझे एक ही आवश्यकता की तलाश में था, तब मुझे निर्देश दिया गया है, इसलिए मैं उन लोगों की मदद के लिए एक और धागे पर एक समाधान का उल्लेख करूंगा जो भविष्य में यहां निर्देशित किया जाएगा, उसी आवश्यकता के लिए सहायता मांगेगा। @nan ने जावा-हिड-एपीआई का उपयोग करके इसका समाधान दिया है और आप उसका उत्तर here पा सकते हैं। उन्होंने in his blog को कैसे किया जाए, इस पर चरणबद्ध पोस्ट द्वारा एक स्पष्ट और कदम भी लिखा है।

हालांकि मुझे यह कहना होगा कि मैंने यह कोशिश की है लेकिन फिर भी मैं इस पर सफल नहीं रहा हूं क्योंकि HIDManager पथ या आईडी द्वारा छुपाए जाने की कोशिश करते समय शून्य हो जाता है। HIDDeviceInfo का उपयोग करते हुए open() पर प्रयास करने पर यह वही है। यह समस्या java hid api page पर भी सूचीबद्ध है लेकिन ऐसा लगता है कि अब तक कोई भी एक समाधान समाधान प्रदान करने में सक्षम नहीं है। तो अगर कोई ऐसा व्यक्ति है जो इस मुद्दे को बाईपास करने में सक्षम है। कृपया साझा करें।

+0

यदि आप विंडोज़ पर चल रहे हैं तो कारण है कि आप छुपा कीबोर्ड नहीं खोल सकते हैं क्योंकि ओएस अपने * अनन्य उपयोग * के लिए सभी छुपा कीबोर्ड खोलता है। संदर्भ के लिए यह एमएसडीएन आलेख देखें। https://msdn.microsoft.com/en-us/library/windows/hardware/jj128406%28v=vs.85%29.aspx। एक अलग जावा एचआईडी कार्यान्वयन के लिए README के ​​अनुसार उपर्युक्त समस्या का समाधान छिपाई है और निचले स्तर के यूएसबी एपीआई पर जाना है। https://github.com/gary-rowe/hid4java। – HairOfTheDog

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