2012-11-12 13 views
12

मैं सी # 2010, उपयोग करने वाले उपकरणों की एक सरणी बनाने के हिस्से में से विभिन्न कीबोर्ड से इनपुट विभाजित कर सकते हैं में एक छोटे से कार्यक्रम में लिखा है की पहचान करने के लिए, निम्न:विशिष्ट Logitech एकीकृत कीबोर्ड (सी # में)


--This कोड के लिए गैर-एकीकृत keyboards--

InputDevice id; 
NumberOfKeyboards = id.EnumerateDevices(); 
id = new InputDevice(Handle); 
id.KeyPressed += new InputDevice.DeviceEventHandler(m_KeyPressed); 
private void m_KeyPressed(object sender, InputDevice.KeyControlEventArgs e) { 
    lbDescription.Text = e.Keyboard.Name; 
    // e.Keyboard.* has many useful strings, none work for me anymore. 
} 


ठीक काम करता है

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

मैं कैसे पहचान सकता हूं कि इनपुट "एकीकृत" कीबोर्ड से आ रहा है? आदर्श रूप से सी # में, लेकिन मुझे लगता है कि समाधान मौजूद होने पर मैं अन्य भाषाओं को देखने के लिए तैयार हूं।

+0

मैंने एक लिनक्स ड्राइवर देखा है जो "एकीकृत" इनपुट को तोड़ता है ताकि छुपा परत अलग-अलग कीबोर्ड देख सके (और उन्हें अलग-अलग व्यवहार करें।) इससे मुझे आशावादी बना दिया गया कि विंडोज समाधान भी मौजूद होना चाहिए। – cdehaan

+0

मेरे अपने प्रश्न पर इतनी सारी टिप्पणियां जोड़ने के लिए खेद है, लेकिन किसी को भी रुचि रखने के लिए, यह वह परियोजना है जहां मेरा मूल इनपुट विभाजन आया: http://www.codeproject.com/Articles/17123/Using-Raw-Input-from -सी-टू-हैंडल-एकाधिक-कीबोर्ड – cdehaan

+0

यूएसबी डोंगल एक यूएसबी छिपा हुआ डिवाइस है, इसलिए आप जो ट्रैफिक देख रहे हैं वह मूल रूप से जेनेरिक छुपा ट्रैफिक है जो यूएसबी डोंगल द्वारा उत्पन्न किया गया है। जब तक चश्मे में यातायात पर कुछ भी नहीं होता है जो उत्पन्न मेटाडेटा उत्पन्न होता है। मुझे यह संभव नहीं लगता है। यूएसबी यातायात को सूँघने के लिए आप [यूएसबीलीज़र] (http://www.usblyzer.com/download.htm) का उपयोग करने में सक्षम हो सकते हैं। यदि आप यूएसबी डोंगल के साथ इंटरफ़ेस कर सकते हैं तो आप इससे जानकारी का अनुरोध कर सकते हैं। – jduncanator

उत्तर

1

मेरे पास एकजुट कीबोर्ड नहीं है, लेकिन जांचें कि क्या आप विंडोज उपकरणों में एकाधिक कीबोर्ड देख सकते हैं। फिर आप इस http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard को आजमा सकते हैं और आउटपुट जांच सकते हैं।

+1

टिप्पणी के लिए धन्यवाद, लेकिन दुर्भाग्यवश वह लिंक है जिसे मैंने मूल रूप से प्रारंभिक बिंदु के रूप में उपयोग किया था (और मेरी दूसरी टिप्पणी में दिया गया था।) यह गैर-एकीकृत कीबोर्ड के लिए ठीक काम करता था, लेकिन एकीकृत कीबोर्ड को अलग करने में असमर्थ था। – cdehaan

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