2014-11-22 6 views
11

मैं अलग-अलग कीबोर्ड लेआउट के लिए हेक्स कीबोर्ड स्कैन कोड की एक सूची कहां पा सकता हूं?हेक्स कीबोर्ड स्कैन कोड और यूएसबी एचआईडी कीबोर्ड प्रलेखन की सूची

मैं एक (फर्जी) यूएसबी HID बैश आदेश echo -ne भाग निकले हेक्स कुंजी कोड स्कैन और HID डिवाइस के द्वारा पीछा के साथ कीबोर्ड पर कुंजी कोड भेज रहा: एक स्लेश के लिए

echo -ne "\x00\x00\x00\x38\x00\x00\x00\x00" > /dev/hidg0 
echo -ne "\x00\x00\x00\x00\x00\x00\x00\x00" > /dev/hidg0 

(/) यूएस कीबोर्ड लेआउट पर।

मेरी कीबोर्ड लेआउट पर (सीएच) यह

echo -ne "\x00\x00\x00\x24\x00\x00\x00\x00" > /dev/hidg0 
echo -ne "\x00\x00\x00\x00\x00\x00\x00\x00" > /dev/hidg0 
एक स्लेश के लिए

है। तो मुझे लगता है कि इन सभी के लिए एक सूची मौजूद है। फिर भी मैं US layout के लिए एक सूची खोजने में सक्षम था लेकिन किसी अन्य कीबोर्ड लेआउट के लिए नहीं।

मुझे पता है कि दूसरी पंक्ति कुंजी के टाइपिंग को रोकती है लेकिन मुझे इन भागने के दृश्यों के वाक्यविन्यास को काफी समझ में नहीं आता है। मुझे पता है कि अगर मैं पहले \x00 को x02 में बदलता हूं तो यह दर्ज कुंजी को "स्थानांतरित" कर देगा। लेकिन 6 और संशोधक क्यों हैं? क्या वे ctrl, alt के लिए खड़े हैं, ...? और किसके लिए खड़ा है?

इस वाक्यविन्यास का एक दस्तावेज़ वास्तव में अच्छा होगा। मैं अभी तक एक नहीं ढूंढ पाया।

(मैं काली Nethunter उपयोग कर रहा हूँ एक नेक्सस 7 2012)

+0

आगे स्लैश के लिए अपने स्कैनकोड के आधार पर, मैं कहूंगा कि आपका कीबोर्ड चेक क्वार्ट्ज की बजाय जर्मन टी 2 है। कोड 'x24' 7 और यूएस समकक्ष की यांत्रिक स्थिति से मेल खाता है, जो कि टी 2 पर आगे की स्लैश है, लेकिन एक चेक संस्करण "/" पर होगा' x2F' मुझे लगता है (यूएस '' 'के बराबर। – jiggunjer

+0

काफी ओटी, लेकिन सीएच स्विट्ज़रलैंड (कन्फोएडरेटियो हेल्वेतिका) के लिए आईएसओ कोड है, चेक सीजेड होगा। – Erik

उत्तर

28

"स्कैन कोड" (वे वास्तव में उपयोग करने के लिए कोड अनुक्रमित कर रहे हैं) अध्याय 10 में USB HID Usage Tables विनिर्देश में usb.org पर प्रकाशित कर रहे "कीबोर्ड/कीपैड पेज (0x07) "। एक सामान्य कीबोर्ड रिपोर्ट लेआउट परिशिष्ट बी "बूट इंटरफ़ेस वर्णनकर्ता", खंड "बी .1 प्रोटोकॉल 1 (कीबोर्ड)" में USB Device Class Specification for HID में पाया जा सकता है।

के रूप में कुंजीपटल रिपोर्ट स्वरूप का वर्णन करता है कि:

Byte 0: Keyboard modifier bits (SHIFT, ALT, CTRL etc) 
Byte 1: reserved 
Byte 2-7: Up to six keyboard usage indexes representing the keys that are 
      currently "pressed". 
      Order is not important, a key is either pressed (present in the 
      buffer) or not pressed. 

ध्यान दें कि यूएसबी कल्पना कीबोर्ड लेआउट को परिभाषित नहीं करता। यह केवल विशेष कुंजी कार्यों को निर्दिष्ट उपयोग कोड सूचीबद्ध करता है। उदाहरण के लिए "ए" अक्षर उपयोग कोड 0x04 है। यदि आप अपरकेस "ए" चाहते हैं, तो आपको "बाएं शिफ़्ट" (या "दायां शिफ्ट") चुनने के लिए बाइट 0 संशोधक बिट्स सेट करने की भी आवश्यकता होगी।

रिपोर्ट बफर का सटीक प्रारूप कुंजीपटल कंप्यूटर पर भेजे गए रिपोर्ट डिस्क्रिप्टर पर निर्भर करता है जब कुंजीपटल यूएसबी पोर्ट में प्लग किया गया था, तो उपर्युक्त सिर्फ एक (सुंदर सामान्य) उदाहरण है।

+0

धन्यवाद। अध्याय 10 एचआईडी कीबोर्ड के लिए हार्डवेयर से विशिष्ट कुंजी स्ट्रोक भेजने के लिए उपयोगी है (उदाहरण के लिए, एक माइक्रोचिप छिपाई कीबोर्ड डेमो एक 4 ए भेजता है जो 'ए' कुंजी से मेल खाता है)। –

+0

चेतावनी: यह केवल QWERTY कीबोर्ड के लिए सच है। AZERTY कीबोर्ड पर 4 'q' कुंजी से जुड़ा हुआ है और 'ए' कुंजी नहीं है। दूसरे शब्दों में कोड क्षेत्रीय कीबोर्ड लेआउट –

+0

@PierrePoliakoff पर निर्भर करते हैं, मुझे लगता है कि आपको लगता है कि कोड एक निश्चित * कीबोर्ड * के अनुरूप * यांत्रिक * लेआउट के आधार पर * निश्चित * (या होना चाहिए) हैं। जैसे एक ही कुंजी उसी उपयोग आईडी का उत्पादन करती है, भले ही उस पर मुद्रित चरित्र के बावजूद। – jiggunjer

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