2

私は、あるコンピューターで低レベルのフックを介してキーボード入力を受け取り、それを注入する必要がある別のコンピューターに入力を送信するネットワーク システム (C#) で作業しています。

フックは、KeyEventArgs クラスでキーボード入力を配信します。それをターゲット コンピューターに挿入するには、SendInput で KEYBDINPUT 構造体を使用する必要があります。

KeyEventArgs.KeyCode または KeyValue と KEYBDINPUT.wVk および wScan の間には、簡単に一致するものはないようです。いくつかの組み合わせで MapVirtualKey も試しました。

別の方法として、ソース コンピューターで KeyEventArgs を Windows キー メッセージ (wParam および lParam を使用した WM_KEYUP/DOWN) に変換することもできますが、同様の問題に直面しています。

ここで誰かがどちらのシナリオでも手伝ってくれますか?

4

1 に答える 1

0

ここで、他の低レベルの作業の代わりにInputSimulatorを使用することをお勧めする最近の回答をご覧になることをお勧めします。これはWin32 SendInputAPI を直接使用します。

これは を使用するVirtualKeyCodeため、プロパティKeyEventArgsを使用するだけで済みます。KeyValue

InputSimulator.SimulateKeyPress(keyEventArgs.KeyValue);

しか持っていない場合は、System.Keyに変換できますVirtualKey

http://msdn.microsoft.com/en-us/library/system.windows.input.keyinterop.virtualkeyfromkey.aspx

「System.Windows.Input.Key」を「System.Windows.Forms.Keys」に変換するにはどうすればよいですか?

于 2012-04-30T08:29:20.450 に答える