internal static void RecordKeys(Keys keyCode, ActionType type) { if (!MacroForm.sIsRecording) { return; } double totalMilliseconds = (DateTime.Now - MacroForm.mBaseDateTime).TotalMilliseconds; MacroForm.mBaseDateTime = DateTime.Now; MacroForm.AddActionInDictionary(new MacroAction() { ActionType = type, ActionKey = keyCode, DelayFromLastAction = totalMilliseconds }); }
internal static void RecordMouse( double x, double y, double width, double height, MouseButtons button, ActionType type) { if (!MacroForm.sIsRecording) { return; } double totalMilliseconds = (DateTime.Now - MacroForm.mBaseDateTime).TotalMilliseconds; MacroForm.mBaseDateTime = DateTime.Now; MacroForm.AddActionInDictionary(new MacroAction() { ActionType = type, MouseButton = button, ActionPointX = x / width, ActionPointY = y / height, DelayFromLastAction = totalMilliseconds }); }
public static void PlayMacro(string MacroName) { Macro macro = string.IsNullOrEmpty(MacroName) || !MacroData.Instance.DictMacros.ContainsKey(MacroName) ? MacroData.Instance.DictMacros.FirstOrDefault <KeyValuePair <string, Macro> >().Value : MacroData.Instance.DictMacros[MacroName]; int windowWidth = VMWindow.Instance.Width; int windowHeight = VMWindow.Instance.Height; if (MacroForm.t != null && MacroForm.t.IsAlive) { MacroForm.AbortReroll(); } MacroForm.t = new Thread((ThreadStart)(() => { try { DateTime dateTime = DateTime.Now; switch (macro.RepeatBehaiour) { case RepeatBehaviour.Once: dateTime = DateTime.Now.AddSeconds(2.0); break; case RepeatBehaviour.For5Minutes: dateTime = DateTime.Now.AddMinutes(5.0); break; case RepeatBehaviour.For1hour: dateTime = DateTime.Now.AddHours(1.0); break; case RepeatBehaviour.For8Hour: dateTime = DateTime.Now.AddHours(8.0); break; case RepeatBehaviour.Forever: dateTime = DateTime.Now.AddYears(5); break; } bool flag = true; while (DateTime.Now < dateTime) { if (flag) { flag = (uint)macro.AndroidCommandRepeatMode > 0U; foreach (KeyValuePair <string, SerializableDictionary <string, string> > dictAndroidCommand in (Dictionary <string, SerializableDictionary <string, string> >)macro.DictAndroidCommands) { try { JsonParser jsonParser = new JsonParser(MultiInstanceStrings.VmName); if (dictAndroidCommand.Key.StartsWith("MacroSleep")) { Thread.Sleep(Convert.ToInt32(dictAndroidCommand.Value.Keys.ElementAt <string>(0))); } else if (dictAndroidCommand.Key.Equals("runex") && jsonParser.GetAppInfoFromPackageName(MacroData.Instance.mPackageName) != null) { VmCmdHandler.RunCommand(string.Format("runex {0}/{1}", (object)MacroData.Instance.mPackageName, (object)jsonParser.GetAppInfoFromPackageName(MacroData.Instance.mPackageName).Activity), MultiInstanceStrings.VmName, "bgp"); } else { MacroForm.RunCommand(dictAndroidCommand); } } catch { } } } foreach (KeyValuePair <int, MacroAction> dictMacroAction in (Dictionary <int, MacroAction>)macro.DictMacroActions) { MacroAction macroAction = dictMacroAction.Value; Thread.Sleep((int)macroAction.DelayFromLastAction); switch (macroAction.ActionType) { case ActionType.MouseDown: InputMapper.Instance.HandleMouseDown((object)null, new MouseEventArgs(macroAction.MouseButton, 0, (int)(macroAction.ActionPointX * (double)windowWidth), (int)(macroAction.ActionPointY * (double)windowHeight), 0)); continue; case ActionType.MouseUp: InputMapper.Instance.HandleMouseUp((object)null, new MouseEventArgs(macroAction.MouseButton, 0, (int)(macroAction.ActionPointX * (double)windowWidth), (int)(macroAction.ActionPointY * (double)windowHeight), 0)); continue; default: continue; } } } MacroForm.t = (Thread)null; HTTPUtils.SendRequestToClient("macroCompleted", (Dictionary <string, string>)null, MultiInstanceStrings.VmName, 0, (Dictionary <string, string>)null, false, 1, 0, "bgp"); } catch (ThreadAbortException ex) { Logger.Error("Error running reroll", (object)ex.ToString()); } catch (Exception ex) { Logger.Error("Exception in running reroll. Err : ", (object)ex.ToString()); HTTPUtils.SendRequestToClient("macroCompleted", (Dictionary <string, string>)null, MultiInstanceStrings.VmName, 0, (Dictionary <string, string>)null, false, 1, 0, "bgp"); } })) { IsBackground = true }; MacroForm.t.Start(); }
private void btnPlay_Click(object sender, EventArgs e) { MacroForm.PlayMacro(this.cmbMacros.SelectedValue.ToString()); }
internal void btnStop_Click(object sender, EventArgs e) { MacroForm.AbortReroll(); }