private void SetPropertyValueButtonInput(String value, Object obj, PropertyInfo property) { Object output; if (Enum.TryParse(typeof(MouseKeyCode), value, true, out output)) { var mouse = new MouseKeyInput((MouseKeyCode)output); property.SetValue(obj, mouse); } else if (Enum.TryParse(typeof(MouseMacro), value, true, out output)) { var mouse = new MouseMacroInput((MouseMacro)output); property.SetValue(obj, mouse); } else if (Enum.TryParse(typeof(KeyboardKeyCode), value, true, out output)) { var keyboard = new KeyboardKeyInput((KeyboardKeyCode)output); property.SetValue(obj, keyboard); } else if (Enum.TryParse(typeof(KeyboardMacro), value, true, out output)) { var keyboard = new KeyboardMacroInput((KeyboardMacro)output); property.SetValue(obj, keyboard); } }
private ButtonEventHandler KeyboardMacroEventHandler(KeyboardMacroInput input, Gamepad gamepad, Keyboard keyboard) { switch (input.Macro) { case KeyboardMacro.OnScreenKeyboard: return(OnScreenKeyboardEventHandler(input, gamepad, keyboard)); default: return(default); } }
private ButtonEventHandler OnScreenKeyboardEventHandler(KeyboardMacroInput input, Gamepad gamepad, Keyboard keyboard) { return((statePressed, previousStatePressed) => { if (!statePressed && previousStatePressed && gamepad.InputState.ButtonPressCount == 0 && gamepad.PreviousInputState.ButtonPressCount == 1) { var windowsKey = new KeyboardKeyInput(KeyboardKeyCode.Windows); var ctrlKey = new KeyboardKeyInput(KeyboardKeyCode.Ctrl); var oKey = new KeyboardKeyInput(KeyboardKeyCode.O); keyboard.Press(windowsKey); keyboard.Press(ctrlKey); keyboard.Press(oKey); keyboard.Release(windowsKey); keyboard.Release(ctrlKey); keyboard.Release(oKey); } }); }