/// <summary> /// 热键选中元素后触发 /// </summary> /// <param name="uiElement">元素</param> private void UiElement_OnKeyboardHotKeySelected(UiElement uiElement) { IsRecorded = true; m_view.WindowState = WindowState.Normal; m_view.Topmost = true; Type _type = Type.GetType("RPA.UIAutomation.Activities.Keyboard.HotKeyActivity,RPA.UIAutomation.Activities"); dynamic activity = Activator.CreateInstance(_type); activity.SourceImgPath = uiElement.CaptureInformativeScreenshotToFile(); activity.Selector = uiElement.Selector; activity.visibility = System.Windows.Visibility.Visible; activity.offsetX = uiElement.GetClickablePoint().X; activity.offsetY = uiElement.GetClickablePoint().Y; var append_displayName = " \"" + uiElement.ProcessName + " " + uiElement.Name + "\""; stuActivityInfo info = new stuActivityInfo(); info.activity = activity; info.postAction = (modelItem) => { modelItem.Properties["DisplayName"].SetValue(modelItem.Properties["DisplayName"].Value + append_displayName); }; m_activityRecordingList.Add(info); }
/////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// 进行实际的鼠标选择 /// </summary> /// <param name="uiElement">ui元素</param> /// <param name="type">类型</param> /// <param name="action">活动</param> private void DoMouseSelect(UiElement uiElement, string type, Action <object> action = null) { IsRecorded = true; m_view.WindowState = WindowState.Normal; m_view.Topmost = true; Type _type = Type.GetType($"RPA.UIAutomation.Activities.Mouse.{type},RPA.UIAutomation.Activities"); dynamic activity = Activator.CreateInstance(_type); action?.Invoke(activity); activity.SourceImgPath = uiElement.CaptureInformativeScreenshotToFile(); activity.Selector = uiElement.Selector; activity.visibility = System.Windows.Visibility.Visible; activity.offsetX = uiElement.GetClickablePoint().X; activity.offsetY = uiElement.GetClickablePoint().Y; activity.Left = uiElement.BoundingRectangle.Left; activity.Right = uiElement.BoundingRectangle.Right; activity.Top = uiElement.BoundingRectangle.Top; activity.Bottom = uiElement.BoundingRectangle.Bottom; var append_displayName = " \"" + uiElement.ProcessName + " " + uiElement.Name + "\""; stuActivityInfo info = new stuActivityInfo(); info.activity = activity; info.postAction = (modelItem) => { modelItem.Properties["DisplayName"].SetValue(modelItem.Properties["DisplayName"].Value + append_displayName); }; m_activityRecordingList.Add(info); }