keeweb/helper/win32/src/KeeWebHelper/InputCommands/SendTextCommand.cs

29 lines
1.3 KiB
C#
Executable File

namespace KeeWebHelper.InputCommands
{
class SendTextCommand : InputCommandBase
{
private static WindowsInput.IKeyboardSimulator _simulator = new WindowsInput.InputSimulator().Keyboard;
public string Text { get; set; }
public ModifierKeys Modifiers { get; set; }
public SendTextCommand(string text, ModifierKeys modifiers)
{
Text = text;
Modifiers = modifiers;
}
public override void Execute()
{
InputStateValidator.EnsureNoKeyIsPressed();
if ((Modifiers & ModifierKeys.Ctrl) != 0) { _simulator.KeyDown(WindowsInput.Native.VirtualKeyCode.CONTROL); }
if ((Modifiers & ModifierKeys.Shift) != 0) { _simulator.KeyDown(WindowsInput.Native.VirtualKeyCode.SHIFT); }
if ((Modifiers & ModifierKeys.Alt) != 0) { _simulator.KeyDown(WindowsInput.Native.VirtualKeyCode.MENU); }
_simulator.TextEntry(Text);
if ((Modifiers & ModifierKeys.Ctrl) != 0) { _simulator.KeyUp(WindowsInput.Native.VirtualKeyCode.CONTROL); }
if ((Modifiers & ModifierKeys.Shift) != 0) { _simulator.KeyUp(WindowsInput.Native.VirtualKeyCode.SHIFT); }
if ((Modifiers & ModifierKeys.Alt) != 0) { _simulator.KeyUp(WindowsInput.Native.VirtualKeyCode.MENU); }
}
}
}