public void Type(string textToType) { SystemWindow systemWindow = SystemWindow.AllOpenSystemWindows[SystemWindow.AllOpenSystemWindows.Count - 1]; // Setup reset event to block until input received var resetEvent = new AutoResetEvent(false); UiThread.RunOnIdle(() => { switch (textToType) { case "{Enter}": systemWindow.OnKeyDown(new KeyEventArgs(Keys.Enter)); systemWindow.OnKeyUp(new KeyEventArgs(Keys.Enter)); break; case "^a": SendKey(Keys.Control | Keys.A, 'A', systemWindow); break; case "{BACKSPACE}": systemWindow.OnKeyPress(new KeyPressEventArgs('\b')); break; default: foreach (char character in textToType) { systemWindow.OnKeyPress(new KeyPressEventArgs(character)); } break; } resetEvent.Set(); }); resetEvent.WaitOne(); }
public override void Type(string textToType) { SystemWindow systemWindow = SystemWindow.AllOpenSystemWindows[SystemWindow.AllOpenSystemWindows.Count - 1]; foreach (char character in textToType) { //UiThread.RunOnIdle(() => systemWindow.OnKeyDown(aggKeyEvent)); //Keyboard.SetKeyDownState(aggKeyEvent.KeyCode, true); KeyPressEventArgs aggKeyPressEvent = new KeyPressEventArgs(character); UiThread.RunOnIdle(() => systemWindow.OnKeyPress(aggKeyPressEvent)); //widgetToSendTo.OnKeyUp(aggKeyEvent); //Keyboard.SetKeyDownState(aggKeyEvent.KeyCode, false); } }