2012-11-12 1 views
12

(C#の場合)Logitechの統一キーボードを識別する、次一意Iは、C#部分的に使用してデバイスのアレイを作製することによって、異なるキーボードからの入力を分割することができ、2010年に小さなプログラムを書かれている


- このコードは、非統一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. 
} 


のために正常に動作します

これに非常に満足して、Unifyingレシーバを使用する4台のLogitech K230キーボードを購入しました。残念ながら、すべてのキーボードデータが多重化され、コード内に単一のキーボードとして表示されます。

入力がどの「統一」キーボードから来たのかを特定するにはどうすればよいですか?理想的にはC#ですが、解決策があれば他の言語も見ていきたいと思います。

+0

"統一された"入力を分割するLinuxドライバを見てきましたので、HIDレイヤーが異なるキーボードを見て(扱い方が異なります。)これにより、Windowsソリューションも存在するはずです。 – cdehaan

+0

多くのコメントを自分の質問に追加して申し訳ありませんが、興味のある人は、これは私の元の入力分割がどこから来たのかというプロジェクトです:http://www.codeproject.com/Articles/17123/Using-Raw-Input-from -C-to-handle-multiple-keyboard – cdehaan

+0

USBドングルはUSB HIDデバイスなので、見ているすべてのトラフィックは基本的にUSBドングルによって生成された一般的なHIDトラフィックです。スペックがトラフィックにメタデータを含んで生成されたものを持っていない限り。私はそれが可能だとは思わない。あなたは[USBlyzer](http://www.usblyzer.com/download.htm)を使ってUSBトラフィックを盗聴することができます。 USBドングルとのインターフェースが可能な場合は、その情報を要求することができます。 – jduncanator

答えて

1

私はキーボードを統一していませんが、Windowsデバイスで複数のキーボードが見えるかどうかを確認します。その後、このhttp://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboardを試して、出力を確認することができます。

+1

コメントをいただき、ありがとうございます。残念ながら、このリンクはもともと私が出発点として使用していたものです(2番目のコメントで与えられました)。統一されていないキーボードではうまくいきましたが、統一キーボードを区別できませんでした。 – cdehaan

関連する問題