Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public static async Task Send(InputActionExecutionContainer container)
 {   
     
     await Send(container, container.InputAction);
 }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
 public ActionProcessor(InputActionExecutionContainer c)
     : this()
 {
     Container = c;
 }
Esempio n. 9
0
 public ActionProcessor(InputActionExecutionContainer c)
     : this()
 {
     Container = c;
 }
Esempio n. 10
0
 public async Task<ApiResult<Object>> Execute(InputActionExecutionContainer actionContainer)
 {
     var cmd = new ExecuteInputAction(actionContainer);
     await cmd.Execute();
     return cmd.Result;
 }
Esempio n. 11
0
 public static async Task Send(InputActionExecutionContainer container)
 {
     await Send(container, container.InputAction);
 }
Esempio n. 12
0
 public ExecuteInputAction(IActionProcessor p, InputActionExecutionContainer c)
 {
     actionContainer = c;
     processor       = p;
     p.Container     = actionContainer;
 }
Esempio n. 13
0
 public ExecuteInputAction(InputActionExecutionContainer c)
 {
     actionContainer = c;
     processor       = new ActionProcessor(actionContainer);
 }