Я написал небольшую программу на С# 2010, которая может разделять входные данные с разных клавиатур, создавая массив устройств, используя, в частности, следующее:
- Этот код отлично подходит для не-унифицированных клавиатур -
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 клавиатуры Logitech K230, которые используют приемник Unifying. К сожалению, все данные клавиатуры теперь мультиплексированы и отображаются в моем коде как одна клавиатура!
Как я могу определить, какая "унифицированная" клавиатура выводит вход? Идеально в С#, но я полагаю, что я готов смотреть на другие языки, если существуют решения.