public static async Task SendKeyBoardSequences(InputAction action) { await Task.Run(() => { foreach (var sequenceItem in action.Sequences) { if (sequenceItem.Entry.Key == null) continue; ExecuteSequenceItem(sequenceItem); } }); }
private void AddScripts(ZipFile zip, InputAction inputAction) { foreach (var scriptSequenceItem in inputAction.ScriptSequences) { var inputScript = scriptProvider.Scripts.FirstOrDefault(s => s.Name == scriptSequenceItem.ScriptName); if (inputScript == null) continue; zip.AddDirectoryByName(KeySndrApp.ScriptsFolderName + "\\Sources"); foreach (var sourceFile in inputScript.SourceFiles) { zip.AddEntry(KeySndrApp.ScriptsFolderName + "\\Sources\\" + sourceFile.FileName, sourceFile.Contents); } zip.AddEntry(KeySndrApp.ScriptsFolderName + "\\" + inputScript.FileName, JsonSerializer.Serialize(inputScript)); } }
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 static async Task SendScripts(InputAction action) { await Task.Run(() => { foreach (var scriptSequence in action.ScriptSequences) { var ctx = ObjectFactory.GetProvider<IScriptProvider>().FindContextForName(scriptSequence.ScriptName); if (!ctx.IsValid || !ctx.HasBeenExecuted) continue; try { ctx.Run(); } catch (Exception e) { ObjectFactory.GetProvider<ILoggingProvider>().Error(e.Message, e); } } }); }
public static async Task SendMouseSequences(InputAction action) { await Task.Run(() => { foreach (var mouseSequenceItem in action.MouseSequences) { ExecuteMouseSequenceItem(mouseSequenceItem); Thread.Sleep(mouseSequenceItem.Time); } }); }
public static async Task Send(InputAction action) { await Send(null, action); }
private static void SetTargetProcess(InputAction action) { var process = WinUtils.GetProcessByName(action.ProcessName); if (process == null) return; Sender.SetCurrentProcessTarget(process.MainWindowHandle); if (action.BringProcessToForeground) WindowsApi.SetForegroundWindow(process.MainWindowHandle); WindowsApi.SetFocus(process.MainWindowHandle); }
public void AddAction(InputAction a) { Actions.Add(a); }
protected bool Equals(InputAction other) { return Id.Equals(other.Id); }
protected bool Equals(InputAction other) { return(Id.Equals(other.Id)); }