private void ModifiersUp(InputBuilder builder, IEnumerable<VirtualKeyCode> modifierKeyCodes) { if (modifierKeyCodes == null) return; // Key up in reverse (I miss LINQ) var stack = new Stack<VirtualKeyCode>(modifierKeyCodes); while (stack.Count > 0) builder.AddKeyUp(stack.Pop()); }
private static void ModifiersUp(InputBuilder builder, IEnumerable<VirtualKeyCode> modifierKeyCodes) { if (modifierKeyCodes == null) return; var stack = new Stack<VirtualKeyCode>(modifierKeyCodes); while (stack.Count > 0) { builder.AddKeyUp(stack.Pop()); } }
private void KeyUp(InputBuilder builder, IEnumerable <KeyCode> keyCodes) { if (keyCodes == null) { return; } foreach (var key in keyCodes) { builder.AddKeyUp(key); } }
private void ModifiersUp(InputBuilder builder, IEnumerable <VirtualKeyCode> modifierKeyCodes) { if (modifierKeyCodes == null) { return; } var stack = new Stack <VirtualKeyCode>(modifierKeyCodes); while (stack.Count > 0) { builder.AddKeyUp(stack.Pop()); } }
/// <summary> /// Simulates a modified keystroke where there are multiple modifiers and multiple keys like CTRL-ALT-K-C where CTRL and ALT are the modifierKeys and K and C are the keys. /// The flow is Modifiers KeyDown in order, Keys Press in order, Modifiers KeyUp in reverse order. /// </summary> /// <param name="modifierKeyCodes">The list of modifier keys</param> /// <param name="keyCodes">The list of keys to simulate</param> public void ModifiedKeyStroke(IEnumerable<VirtualKeyCode> modifierKeyCodes, IEnumerable<VirtualKeyCode> keyCodes) { var builder = new InputBuilder(); if (modifierKeyCodes != null) modifierKeyCodes.ToList().ForEach(x => builder.AddKeyUp(x)); if (keyCodes != null) keyCodes.ToList().ForEach(x => builder.AddKeyPress(x)); if (modifierKeyCodes != null) modifierKeyCodes.Reverse().ToList().ForEach(x => builder.AddKeyUp(x)); SendSimulatedInput(builder.ToArray()); }
/// <summary> /// Simulates a modified keystroke where there are multiple modifiers and one key like CTRL-ALT-C where CTRL and ALT are the modifierKeys and C is the key. /// The flow is Modifiers KeyDown in order, Key Press, Modifiers KeyUp in reverse order. /// </summary> /// <param name="modifierKeyCodes">The list of modifier keys</param> /// <param name="keyCode">The key to simulate</param> public void ModifiedKeyStroke(IEnumerable<VirtualKeyCode> modifierKeyCodes, VirtualKeyCode keyCode) { var builder = new InputBuilder(); var modifierKeyCodesList = modifierKeyCodes.ToList(); if (modifierKeyCodes != null) modifierKeyCodesList.ForEach(x => builder.AddKeyDown(x)); builder.AddKeyPress(keyCode); if (modifierKeyCodes != null) { modifierKeyCodesList.Reverse(); modifierKeyCodesList.ForEach(x => builder.AddKeyUp(x)); } SendSimulatedInput(builder.ToArray()); }
private void ModifiersUp(InputBuilder builder, IEnumerable<Win32Constants.VirtualKeys> modifierKeyCodes){ if (modifierKeyCodes == null) return; var stack = new Stack<Win32Constants.VirtualKeys>(modifierKeyCodes); while (stack.Count > 0) builder.AddKeyUp(stack.Pop()); }