private static string AddWndAssistDeskToCache(int hwnd) { if (!_hwndDesc.ContainsKey(hwnd)) { WndAssist wndAssist = WndAssist.AssistBag.FirstOrDefault(k => k.Desk.Hwnd.Handle == hwnd); string value; if (wndAssist != null) { value = string.Format("WndAssist({0},{1:x})", wndAssist.Desk.Seller, hwnd); } else { var desk = ChatDesk.DeskSet.FirstOrDefault(k => k.Hwnd.Handle == hwnd); if (desk != null) { value = string.Format("Desk({0},{1:x})", desk.Seller, hwnd); } else { value = hwnd.ToString("x"); } } _hwndDesc[hwnd] = value; } return(_hwndDesc[hwnd]); }
public void Init(WndAssist wnd) { if (this._wndDontUse == null) { this.Wnd = wnd; this.ctlAnswer.Init(wnd); this.InitUI(); } }
//public RuleEditor RuleEditor { get; private set; } public CtlRobotQA(WndAssist wnd) { this._isInit = false; this._wnd = wnd; this.InitializeComponent(); this.tvMain.xSetRightClickSelectTreeviewItem(); this.Init(); Loaded += this.CtlRobotQA_Loaded; SizeChanged += this.CtlRobotQA_Loaded; }
private static void SyncFinished(string err = null) { WndAssist.UpdateAllBuyerNote(); if (EvSynFinished != null) { EvSynFinished(null, new SynFinishedEventArgs { Error = err }); } }
public static void Dispatch(IntPtr op) { try { WndAssist wndAssist = WndAssist.GetTopWindow(); if (wndAssist != null) { wndAssist.ctlBottomPanel.MonitorHotKey((HotKeyHelper.HotOp)((int)op)); } } catch (Exception ex) { Log.Exception(ex); MsgBox.ShowErrTip(ex.Message, null); } }
public void Save(string seller) { Params.Robot.CancelAutoOnReset = cboxCancelAutoOnReset.IsChecked.HasValue && cboxCancelAutoOnReset.IsChecked.Value; Params.Robot.SetAutoModeNoAnswerTip(seller, tboxNoAnswerTip.Text); Params.Robot.SetAutoModeReplyDelaySec(_seller, ConvertEx.ToInt32Safe(tboxAutoDelay.Text.Trim(), 0)); Params.Robot.SetSendModeReplyDelaySec(_seller, ConvertEx.ToInt32Safe(tboxSendDelay.Text.Trim(), 0)); Params.Robot.SetQuoteModeSendAnswerWhenFullMatch(_seller, cboxAlwaysSend.IsChecked.HasValue && cboxAlwaysSend.IsChecked.Value); bool ruleIncludeExcept = Params.Robot.GetRuleIncludeExcept(_sellerMain); if (ruleIncludeExcept != (cboxKeyExclude.IsChecked.HasValue && cboxKeyExclude.IsChecked.Value)) { Params.Robot.SetRuleIncludeExcept(_sellerMain, cboxKeyExclude.IsChecked.HasValue && cboxKeyExclude.IsChecked.Value); var wndAssist = WndAssist.FindWndAssist(_seller); if (wndAssist != null) { wndAssist.ctlRightPanel.UpdateRobotTab(); } } }
public void Init(WndAssist wnd) { if (_wndDontUse == null) { Wnd = wnd; lblSeller.Content = Wnd.Desk.Seller; string seller = Wnd.Desk.Seller; string[] tabs = new string[] { "话术" /*, "机器人"*/ }; foreach (string tabName in tabs) { TabTypeEnum tabType = GetTabType(tabName); TabItem tabItem = CreateTabItem(tabType); if (tabItem != null) { AddTabItem(tabItem, tabType); } } tabControl.SelectionChanged -= tabControl_SelectionChanged; tabControl.SelectionChanged += tabControl_SelectionChanged; } }
public static void MyShow(string seller, WndAssist owner = null, OptionEnum showPage = OptionEnum.Unknown, Action uiCallback = null) { Util.Assert(!string.IsNullOrEmpty(seller)); var wndOp = EtWindow.ShowSameNickOneInstance <WndOption>(seller, () => { return(new WndOption(seller)); }, owner, true); if (uiCallback != null) { wndOp.Closed += (s, e) => { if (uiCallback != null) { uiCallback(); } }; } if (showPage > OptionEnum.Unknown) { wndOp.ShowPage(showPage); } }
private static void Start(string nick, int delayMs) { if (delayMs > 0) { Thread.Sleep(delayMs); } var loginedSeller = QnHelper.Detected.GetSellerFromCache(nick); string arg; var desk = ChatDesk.Create(loginedSeller, nick, out arg); if (desk != null) { DispatcherEx.xInvoke(() => { WndAssist.CreateAndAttachToDesk(desk); }); //写入登录数据 } else { MsgBox.ShowErrDialog(string.Format("无法为{0}创建辅助面板,原因是{1}", nick, arg)); } }
private void ShowEditorErrorTipIfNeed(string tip) { if (this._ShowEditorErrorTipTime.xIsTimeElapseMoreThanSecond(10)) { try { this._ShowEditorErrorTipTime = DateTime.Now; WndAssist assistWindow = this._desk.AssistWindow; if (assistWindow != null) { BottomPanel.Tipper theTipper = assistWindow.ctlBottomPanel.TheTipper; if (theTipper != null) { theTipper.ShowTip(tip); } } Log.Info(string.Format("ShowEditorError:IsGroupChat={0},IsSingleChat={1}", this._desk.IsGroupChat, this._desk.IsSingleChat)); } catch (Exception e) { Log.Exception(e); } } }
public void Init(WndAssist wnd) { _desk = wnd.Desk; _tipper = wnd.ctlBottomPanel.TheTipper; _wnd = wnd; }
private void UpdateShortcutUI() { var wndAssist = WndAssist.FindWndAssist(_seller); wndAssist.ctlRightPanel.UpdateShortcutUI(); }
private ChatDesk(LoginedSeller loginedSeller, string seller) { _isBuyerRegionVisibleCacheTime = DateTime.MinValue; _foregroundChangedTime = DateTime.MaxValue; _isSingleChatcloseButtonEnableCacheTime = DateTime.MinValue; _assistWindow = null; _isGroupChatCheckTime = DateTime.MinValue; _isGroupChat = null; _isEvShowFinished = true; _isEvHideFinished = true; _preLogGroupChatNullTime = DateTime.MinValue; _logGroupChatNullCount = 0; _getVisiblePercentCacheTime = DateTime.MinValue; _getVisiblePercentCache = 0.0; _isForeground = false; _isVisible = true; _synObj = new object(); _preCheckCloseBuyerTime = DateTime.MinValue; _sameBuyerCount = 0; preUpdateRectAndWindowStateIfNeedTime = DateTime.MinValue; _preCheckForegroundWindowTime = DateTime.MinValue; _preUpdateLocationTime = DateTime.MinValue; _isEditorTextChanged = false; _isLocationChanged = false; _isAlive = true; Log.Info("Begin Create ChatDesk,seller=" + seller); Hwnd = new HwndInfo(loginedSeller.SellerHwnd, "ChatDesk"); Seller = seller; _args = new ChatDeskEventArgs { Desk = this }; Automator = ChatDeskAutomatorFactory.Create(Hwnd, Seller); chatRecordChrome = ChromeDebugerCreator.Create(this); //chatRecordChrome.EvChromeConnected += chatRecordChrome_EvChromeConnected; //chatRecordChrome.EvChromeDetached += chatRecordChrome_EvChromeDetached; //chatRecordChrome.EvRecieveNewMessage += chatRecordChrome_EvRecieveNewMessage; //chatRecordChrome.EvBuyerSwitched += Contact_EvBuyerSwitched; //_buyerReader = new TaskWindowBuyerNameReader(this); //_buyerReader.EvBuyerChanged += Contact_EvBuyerChanged; _buyerReader = new BuyerInfoWindowNameReader(this); _buyerReader.EvBuyerSwitched += Contact_EvBuyerSwitched; Editor = new DeskEditor(Automator.SingleChatEditorHwnd, this); _qnThreadId = WinApi.GetWindowThreadProcessId(loginedSeller.SellerHwnd, out _processId); EnterpriseHwnd = new HwndInfo(loginedSeller.EpHwnd, "EnterpriseRootDesk"); _winEventHooker = new WinEventHooker(_qnThreadId, loginedSeller.SellerHwnd); _winEventHooker.EvFocused += WinEventHooker_EvFocused; _winEventHooker.EvLocationChanged += WinEventHooker_EvLocationChanged; _winEventHooker.EvTextChanged += WinEventHooker_EvTextChanged; WinEventHooker.EvForegroundChanged += WinEventHooker_EvForegroundChanged; IsForeground = WinApi.IsForeground(Hwnd.Handle); IsVisible = WinApi.IsVisible(Hwnd.Handle); UpdateRectAndWindowState(); _timer = new NoReEnterTimer(Loop, 100, 0); _sugguestion = new DeskSuggestion(this); DeskSet = new HashSet <ChatDesk>(DeskSet) { this }; Log.Info("ChatDesk Created.seller=" + seller); }