I have written a small program in C# 2010 which can split input from different keyboards by making an array of devices using, in part, the following:
--This code works fine for non-unified 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.
}
Very happy with this, I ran out and bought 4 Logitech K230 keyboards which use the Unifying receiver. Sadly, all the keyboard data is now multiplexed and shows up in my code as a single keyboard!
How can I identify which "unified" keyboard the input is coming from? Ideally in C#, but I suppose I am willing to look at other languages if solutions exist.
For the full and current list of Unifying products, visit www.logitech.com/unifying. For identification of Unifying products, please look for the Unifying icon on mice or keyboards and wireless receivers.
Logitech's Unifying is a proprietary wireless peripheral protocol on the 2.4 GHz band, introduced in 2009. It can connect up to six compatible Logitech devices to one Unifying receiver, which must be plugged into a USB Type-A port. Some of Logitech's mice and keyboards with Unifying support also Bluetooth.
Unifying Receiver for Mouse and Keyboard Compatible for Any Logitech Product That Display The Unifying Logo (Orange Star, Connects up to 6 Devices) 001.
I don't have unifying keyboard, but check if you can see multiple keyboards in Windows devices. Then you could try this http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard and check output.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With