private void HandleMacro(string macro) { var keyStrokes = CommandTools.ExtractKeyStrokes(macro); // Actually initiate the keystrokes if (keyStrokes.Count > 0) { var iis = new InputSimulator(); var keyCode = keyStrokes.Last(); keyStrokes.Remove(keyCode); if (keyStrokes.Count > 0) { //iis.Keyboard.ModifiedKeyStroke(keyStrokes.Select(ks => ks).ToArray(), keyCode); iis.Keyboard.DelayedModifiedKeyStroke(keyStrokes.Select(ks => ks), keyCode, 40); } else // Single Keycode { //iis.Keyboard.KeyPress(keyCode); iis.Keyboard.DelayedKeyPress(keyCode, 40); } } }
protected void RunCommand(string commandString) { try { if (string.IsNullOrEmpty(commandString)) { Logger.Instance.LogMessage(TracingLevel.WARN, $"Command not configured"); return; } counter = autoStopNum; if (commandString.Length == 1) { Task.Run(() => SimulateTextEntry(commandString[0])); } else // KeyStroke { List <VirtualKeyCodeContainer> keyStrokes = CommandTools.ExtractKeyStrokes(commandString); // Actually initiate the keystrokes if (keyStrokes.Count > 0) { VirtualKeyCodeContainer keyCode = keyStrokes.Last(); keyStrokes.Remove(keyCode); if (keyStrokes.Count > 0) { Task.Run(() => SimulateKeyStroke(keyStrokes.Select(ks => ks.KeyCode).ToArray(), keyCode.KeyCode)); } else { if (keyCode.IsExtended) { Task.Run(() => SimulateExtendedMacro(keyCode)); } else { Task.Run(() => SimulateKeyDown(keyCode.KeyCode)); } } } } } catch (Exception ex) { Logger.Instance.LogMessage(TracingLevel.ERROR, $"RunCommand Exception: {ex}"); } }
protected void HandleMacro(string macro) { List <VirtualKeyCodeContainer> keyStrokes = CommandTools.ExtractKeyStrokes(macro); // Actually initiate the keystrokes if (keyStrokes.Count > 0) { InputSimulator iis = new InputSimulator(); VirtualKeyCodeContainer keyCode = keyStrokes.Last(); keyStrokes.Remove(keyCode); if (keyStrokes.Count > 0) { if (settings.KeydownDelay) { Logger.Instance.LogMessage(TracingLevel.INFO, $"{this.GetType()} DelayedModifiedKeyStroke"); iis.Keyboard.DelayedModifiedKeyStroke(keyStrokes.Select(ks => ks.KeyCode).ToArray(), new VirtualKeyCode[] { keyCode.KeyCode }, settings.Delay); } else { Logger.Instance.LogMessage(TracingLevel.INFO, $"{this.GetType()} ModifiedKeyStroke"); iis.Keyboard.ModifiedKeyStroke(keyStrokes.Select(ks => ks.KeyCode).ToArray(), keyCode.KeyCode); } } else // Single Keycode { if (keyCode.IsExtended) { Logger.Instance.LogMessage(TracingLevel.INFO, $"{this.GetType()} HandleExtendedMacro"); ExtendedMacroHandler.HandleExtendedMacro(iis, keyCode); } else // Normal single keycode { if (!MouseHandler.HandleMouseMacro(iis, keyCode.KeyCode)) { Logger.Instance.LogMessage(TracingLevel.INFO, $"{this.GetType()} KeyPress"); iis.Keyboard.KeyPress(keyCode.KeyCode); } } } } }