diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.RemoteDesktop/Input/KeyboardController.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.RemoteDesktop/Input/KeyboardController.cs | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/Input/KeyboardController.cs b/Software/Visual_Studio/Tango.RemoteDesktop/Input/KeyboardController.cs new file mode 100644 index 000000000..832018dac --- /dev/null +++ b/Software/Visual_Studio/Tango.RemoteDesktop/Input/KeyboardController.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using WindowsInput; +using WindowsInput.Native; + +namespace Tango.RemoteDesktop.Input +{ + public static class KeyboardController + { + private static InputSimulator simulator; + + static KeyboardController() + { + simulator = new InputSimulator(); + } + + public static void KeyDown(Key key, bool ctrlDown, bool shitDown, bool altDown) + { + VirtualKeyCode virtualKey = (VirtualKeyCode)KeyInterop.VirtualKeyFromKey(key); + + if (ctrlDown || shitDown || altDown) + { + List<VirtualKeyCode> modifierKeys = new List<VirtualKeyCode>(); + + if (ctrlDown) + { + modifierKeys.Add(VirtualKeyCode.LCONTROL); + } + if (shitDown) + { + modifierKeys.Add(VirtualKeyCode.LSHIFT); + } + if (altDown) + { + modifierKeys.Add(VirtualKeyCode.MENU); + } + + simulator.Keyboard.ModifiedKeyStroke(modifierKeys, virtualKey); + } + else + { + simulator.Keyboard.KeyDown(virtualKey); + } + } + + public static void KeyUp(Key key, bool ctrlDown, bool shitDown, bool altDown) + { + VirtualKeyCode virtualKey = (VirtualKeyCode)KeyInterop.VirtualKeyFromKey(key); + + if (ctrlDown || shitDown || altDown) + { + List<VirtualKeyCode> modifierKeys = new List<VirtualKeyCode>(); + + if (ctrlDown) + { + modifierKeys.Add(VirtualKeyCode.LCONTROL); + } + if (shitDown) + { + modifierKeys.Add(VirtualKeyCode.LSHIFT); + } + if (altDown) + { + modifierKeys.Add(VirtualKeyCode.MENU); + } + + simulator.Keyboard.ModifiedKeyStroke(modifierKeys, virtualKey); + } + else + { + simulator.Keyboard.KeyUp(virtualKey); + } + } + } +} |
