public bool ParseUserAction(ref IRecordEvent e) { if (e.UIElement == null) { return(false); } if (e.UIElement.ProcessId < 1) { return(false); } var p = System.Diagnostics.Process.GetProcessById(e.UIElement.ProcessId); if (p.ProcessName.ToLower() != "chrome" && p.ProcessName.ToLower() != "firefox") { return(false); } if (p.ProcessName.ToLower() == "chrome" && !NMHook.chromeconnected) { System.Windows.MessageBox.Show("You clicked inside Chrome, but it looks like you dont have the OpenRPA plugin installed"); return(false); } if (p.ProcessName.ToLower() == "firefox" && !NMHook.ffconnected) { System.Windows.MessageBox.Show("You clicked inside Firefix, but it looks like you dont have the OpenRPA plugin installed"); return(false); } if (LastElement == null) { return(false); } var selector = new NMSelector(LastElement, null, true, null); var a = new GetElement { DisplayName = LastElement.id + " " + LastElement.type + " " + LastElement.Name }; a.Selector = selector.ToString(); a.Image = LastElement.ImageString(); a.MaxResults = 1; e.Element = LastElement; e.Selector = selector; e.a = new GetElementResult(a); e.SupportInput = LastElement.SupportInput; e.SupportSelect = false; e.OffsetX = e.X - LastElement.Rectangle.X; e.OffsetY = e.Y - LastElement.Rectangle.Y; e.ClickHandled = false; //e.ClickHandled = true; //LastElement.Click(true, e.Button, e.X, e.Y, false, false); return(true); }
private void OnMessage(NativeMessagingMessage message) { try { if (message.uiy > 0 && message.uix > 0 && message.uiwidth > 0 && message.uiheight > 0) { if (!string.IsNullOrEmpty(message.data)) { LastElement = new NMElement(message); } else { LastElement = new NMElement(message); } } if (message.functionName == "click") { if (IsRecording) { if (LastElement == null) { return; } var re = new RecordEvent { Button = Input.MouseButton.Left }; var a = new GetElement { DisplayName = LastElement.ToString() }; var selector = new NMSelector(LastElement, null, true, null); a.Selector = selector.ToString(); a.Image = LastElement.ImageString(); a.MaxResults = 1; re.Selector = selector; re.a = new GetElementResult(a); re.SupportInput = LastElement.SupportInput; re.SupportSelect = false; re.ClickHandled = true; OnUserAction?.Invoke(this, re); return; } } } catch (Exception ex) { Log.Error(ex.ToString()); } }
protected override void OnButtonUp(object sender, ButtonEventArgs eventArguments) { if (eventArguments.Button == ButtonType.HmdMenu) { if (IsWaitingForAnimationToComplete == true) { return; } CurrentElement = null; ToggleVisiblity(!shown); // Auto Show Holocron mastery if (shown && Game == Game.ForceVision) { HolocronMasterController.HolocronMasterButton.OnClicked(); LastElement = HolocronMasterController.HolocronMasterButton; } else if (shown) { OptionsController.OptionsButton.OnClicked(); LastElement = OptionsController.OptionsButton; } return; } if (!ButtonIsActivateOrControl(eventArguments.Button)) { return; } if (CurrentElement != null && CurrentElement.Interactable) { if (LastElement != null && LastElement != CurrentElement) { LastElement.OnClicked(); } CurrentElement.OnClicked(); LastElement = (LastElement == CurrentElement) ? null : CurrentElement; } base.OnButtonUp(sender, eventArguments); }
protected override void OnButtonUp(object sender, ButtonEventArgs eventArguments) { if (eventArguments.Button != ButtonType.SaberActivate && eventArguments.Button != ButtonType.SaberControl && eventArguments.Button != ButtonType.HmdSelect) { return; } if (CurrentElement != null && CurrentElement.Interactable) { if (LastElement != null && LastElement != CurrentElement) { LastElement.OnClicked(); } CurrentElement.OnClicked(); LastElement = (LastElement == CurrentElement) ? null : CurrentElement; } base.OnButtonUp(sender, eventArguments); }
public static IEnumerable <TestCaseData> GetTestCases() { var FIRST_ELEMENT = new FirstElement(); var LAST_ELEMENT = new LastElement(); var ELEMENT_AT = new ElementAt(); var SIZE = new Size(); object[][] tests = new object[][] { new object[] { "first-empty-array", FIRST_ELEMENT, new JArray(), null }, new object[] { "first-null", FIRST_ELEMENT, null, null }, new object[] { "first-array", FIRST_ELEMENT, new JArray(1, 2, 3), new JValue(1) }, new object[] { "last-empty-array", LAST_ELEMENT, new JArray(), null }, new object[] { "last-null", LAST_ELEMENT, null, null }, new object[] { "last-array", LAST_ELEMENT, new JArray(1, 2, 3), new JValue(3) }, new object[] { "at-empty-array", ELEMENT_AT, new JArray(5), null }, new object[] { "at-empty-null", ELEMENT_AT, new JArray(null, 1), null }, new object[] { "at-empty-invalid", ELEMENT_AT, new JObject(), null }, new object[] { "at-array", ELEMENT_AT, new JArray(1, 2, 3, 1), new JValue(3) }, new object[] { "at-array-missing", ELEMENT_AT, new JArray(5, 1, 2, 3), null }, new object[] { "size-list", SIZE, new JArray(5, 1, 2, 3), new JValue(4) } }; foreach (var test in tests) { yield return(new TestCaseData(test.Skip(1).ToArray()) { TestName = $"RunTest({test[0]})" }); } }
public override void Click(bool rightButton = false, int relativeX = 0, int relativeY = 0) { LastElement.GetInvokePattern().Invoke(); }
public virtual void Close(string menuOption) { _logger.Info(string.Format("selecting value:{0} for {1}", menuOption, ActiveControlLocatorDef == null ? string.Empty : ActiveControlLocatorDef.ToString())); this.SelectItem(menuOption); LastElement.GetExpandCollapsePattern().Collapse(); }
private void OnMessage(NativeMessagingMessage message) { try { //lock(_lock) //{ // //if (dpiscale == 0) // //{ // // dpiscale = NativeMethods.getScalingFactor(); // //} else // //{ // // dpiscale = NativeMethods.getScalingFactor(); // //} // var dpi = NativeMethods.GetDpiForSystem(); // dpiscale = 1; // if (dpi == 96) dpiscale = 1; // if (dpi == 120) dpiscale = 1.25f; // if (dpi == 144) dpiscale = 1.5f; // if (dpi == 192) dpiscale = 2; //} if (message.uiy > 0 && message.uix > 0 && message.uiwidth > 0 && message.uiheight > 0) { //message.uiy = (int)(message.uiy * dpiscale); //message.uix = (int)(message.uix * dpiscale); //message.uiwidth = (int)(message.uiwidth * dpiscale); //message.uiheight = (int)(message.uiheight * dpiscale); if (dpiscale == 1.25) { message.uiy += 158; } LastElement = new NMElement(message); } if (message.functionName == "click") { if (IsRecording) { if (LastElement == null) { return; } var re = new RecordEvent { Button = Input.MouseButton.Left }; var a = new GetElement { DisplayName = LastElement.ToString() }; message.tab = NMHook.tabs.Where(x => x.id == message.tabid && x.windowId == message.windowId).FirstOrDefault(); var selector = new NMSelector(LastElement, null, true, null); a.Selector = selector.ToString(); a.Image = LastElement.ImageString(); a.MaxResults = 1; re.Selector = selector; re.a = new GetElementResult(a); re.SupportInput = LastElement.SupportInput; re.SupportSelect = false; re.ClickHandled = true; OnUserAction?.Invoke(this, re); return; } } } catch (Exception ex) { Log.Error(ex.ToString()); } }
public bool ParseUserAction(ref IRecordEvent e) { if (e.UIElement == null) { return(false); } if (e.UIElement.ProcessId < 1) { return(false); } using (var p = System.Diagnostics.Process.GetProcessById(e.UIElement.ProcessId)) { if (p.ProcessName.ToLower() != "chrome" && p.ProcessName.ToLower() != "firefox" && p.ProcessName.ToLower() != "msedge") { return(false); } if (p.ProcessName.ToLower() == "chrome") { if (!NMHook.chromeconnected) { System.Windows.MessageBox.Show("You clicked inside Chrome, but it looks like you dont have the OpenRPA plugin installed"); return(false); } if (string.IsNullOrEmpty(e.UIElement.FrameworkId) || e.UIElement.FrameworkId.ToLower() != "chrome") { return(false); } } if (p.ProcessName.ToLower() == "msedge" && !NMHook.edgeconnected) { System.Windows.MessageBox.Show("You clicked inside Edge, but it looks like you dont have the OpenRPA plugin installed"); return(false); } if (p.ProcessName.ToLower() == "firefox" && !NMHook.ffconnected) { System.Windows.MessageBox.Show("You clicked inside Firefix, but it looks like you dont have the OpenRPA plugin installed"); return(false); } if (LastElement == null) { return(false); } if (LastElement.message == null) { return(false); } if (LastElement.message.tab == null) { LastElement.message.tab = NMHook.FindTabById(LastElement.message.browser, LastElement.message.tabid); } if (p.ProcessName.ToLower() == "chrome" || p.ProcessName.ToLower() == "msedge") { // if (e.UIElement.FrameworkId != "chrome" && e.UIElement.FrameworkId != "Chrome") return false; } } var selector = new NMSelector(LastElement, null, true, null); var a = new GetElement { DisplayName = LastElement.id + " " + LastElement.type + " " + LastElement.Name }; a.Variables.Add(new Variable <int>("Index", 0)); a.Variables.Add(new Variable <int>("Total", 0)); a.Selector = selector.ToString(); a.Image = LastElement.ImageString(); a.MaxResults = 1; e.Element = LastElement; e.Selector = selector; e.a = new GetElementResult(a); e.SupportInput = LastElement.SupportInput; e.SupportSelect = LastElement.tagname.ToLower() == "select"; e.OffsetX = e.X - LastElement.Rectangle.X; e.OffsetY = e.Y - LastElement.Rectangle.Y; e.ClickHandled = false; //e.ClickHandled = true; //LastElement.Click(true, e.Button, e.X, e.Y, false, false); return(true); }
public void Collapse() { LastElement.GetExpandCollapsePattern().Collapse(); }