public static async Task Send(InputActionExecutionContainer container, InputAction action) { Log.Debug("Running action " + action.Name); if (action.OverrideProcess && !string.IsNullOrEmpty(action.ProcessName)) { SetTargetProcess(action); } else if (container != null) { SetTargetProcess(container); } if (action.HasKeySequences) { await SendKeyBoardSequences(action); } if (action.HasMouseSequences) { await SendMouseSequences(action); } if (action.HasScriptSequences) { await SendScripts(action); } //if (container != null) // SetTargetProcess(container); }
public async Task <ApiResult <Object> > Execute(InputActionExecutionContainer actionContainer) { var cmd = new ExecuteInputAction(actionContainer); await cmd.Execute(); return(cmd.Result); }
public void Test() { var action = TestFactory.CreateTestInputAction(); var container = InputActionExecutionContainer.Wrap(action); cmd = new ExecuteInputAction(actionProcessor, container); cmd.Execute().Wait(1000); var result = cmd.Result; Assert.IsNotNull(result); Assert.IsTrue(result.Success); actionProcessorMock.Verify(a => a.Process(), Times.Once); }
public static async Task Send(InputActionExecutionContainer container, InputAction action) { Log.Debug("Running action " + action.Name); if (action.OverrideProcess && !string.IsNullOrEmpty(action.ProcessName)) SetTargetProcess(action); else if (container != null) SetTargetProcess(container); if (action.HasKeySequences) await SendKeyBoardSequences(action); if (action.HasMouseSequences) await SendMouseSequences(action); if (action.HasScriptSequences) await SendScripts(action); //if (container != null) // SetTargetProcess(container); }
private static void SetTargetProcess(InputActionExecutionContainer container) { var hasProcess = false; if (container.UseForegroundWindow) { var ptr = WindowsApi.GetForegroundWindow(); if (ptr != IntPtr.Zero) { WindowsApi.SetFocus(ptr); Sender.SetCurrentProcessTarget(ptr); hasProcess = true; } } if (!hasProcess && container.UseDesktop) { var ptr = WindowsApi.GetDesktopWindow(); if (ptr != IntPtr.Zero) { WindowsApi.SetForegroundWindow(ptr); WindowsApi.SetFocus(ptr); Sender.SetCurrentProcessTarget(ptr); hasProcess = true; } } if (hasProcess || string.IsNullOrEmpty(container.ProcessName)) { return; } var process = WinUtils.GetProcessByName(container.ProcessName); if (process == null) { return; } Sender.SetCurrentProcessTarget(process.MainWindowHandle); WindowsApi.SetForegroundWindow(process.MainWindowHandle); WindowsApi.SetFocus(process.MainWindowHandle); }
public static async Task Send(InputActionExecutionContainer container) { await Send(container, container.InputAction); }
private static void SetTargetProcess(InputActionExecutionContainer container) { var hasProcess = false; if (container.UseForegroundWindow) { var ptr = WindowsApi.GetForegroundWindow(); if (ptr != IntPtr.Zero) { WindowsApi.SetFocus(ptr); Sender.SetCurrentProcessTarget(ptr); hasProcess = true; } } if (!hasProcess && container.UseDesktop) { var ptr = WindowsApi.GetDesktopWindow(); if (ptr != IntPtr.Zero) { WindowsApi.SetForegroundWindow(ptr); WindowsApi.SetFocus(ptr); Sender.SetCurrentProcessTarget(ptr); hasProcess = true; } } if (hasProcess || string.IsNullOrEmpty(container.ProcessName)) return; var process = WinUtils.GetProcessByName(container.ProcessName); if (process == null) return; Sender.SetCurrentProcessTarget(process.MainWindowHandle); WindowsApi.SetForegroundWindow(process.MainWindowHandle); WindowsApi.SetFocus(process.MainWindowHandle); }
public ActionProcessor(InputActionExecutionContainer c) : this() { Container = c; }
public async Task<ApiResult<Object>> Execute(InputActionExecutionContainer actionContainer) { var cmd = new ExecuteInputAction(actionContainer); await cmd.Execute(); return cmd.Result; }
public ExecuteInputAction(IActionProcessor p, InputActionExecutionContainer c) { actionContainer = c; processor = p; p.Container = actionContainer; }
public ExecuteInputAction(InputActionExecutionContainer c) { actionContainer = c; processor = new ActionProcessor(actionContainer); }