私の C#/WPF/.NET 4.5 アプリケーションでは、KeyEventHandler を介してキーの押下をキャプチャし、後で優れたWindows 入力シミュレータを使用してそのキーの押下をエミュレートしようとしています (ジェスチャ、音声などのコマンドをキーボードにマップするため)。
Key
問題は、から列挙型KeyEventHandler
のメンバーを取得することですRoutedEventArgs
が、後で to に渡す必要がありVirtualKeyCode
ますSimulateKeyPress()
。
Key
からに行くにはどうすればよいVirtualKeyCode
ですか?
// Trigger reader
private void Editor_CommandButton_Click(object sender, RoutedEventArgs e) {
PressKeyModal.Visibility = System.Windows.Visibility.Visible;
AddHandler(Keyboard.KeyDownEvent, (KeyEventHandler)Editor_HandleKeyDownEvent);
}
// Read key press from keyboard
private void Editor_HandleKeyDownEvent(object sender, KeyEventArgs e) {
// Here is the culprit
VirtualKeyCode CodeOfKeyToEmulate = ConvertSomehow(e.Key);
// /culprit
PressKeyModal.Visibility = System.Windows.Visibility.Hidden;
RemoveHandler(Keyboard.KeyDownEvent, (KeyEventHandler)Editor_HandleKeyDownEvent);
}
// Later, emulate the key press
private void EmulateKeyPress(VirtualKeyCode codeOfKeyToEmulate( {
InputSimulator.SimulateKeyPress(codeOfKeyToEmulate);
}