學網(wǎng)站建設需要什么軟件百度外包公司有哪些
本篇文章實現(xiàn)了微信自動接收最新的實時聊天信息,并對當前實時的聊天信息做出對應的回復。
可以自行接入人工智能或者結合自己的業(yè)務來做出自動回復。
下面視頻是軟件實際效果
自動接收消息并回復
實現(xiàn)的邏輯是實時監(jiān)控微信的聊天面板中UI對象來判斷是否有最新的消息過來,如果沒有則繼續(xù)監(jiān)聽,如果有則點擊UI對象切換到當前聊天面板,并找到聊天面板中的輸入框和發(fā)送按鈕元素來進行回復。
(1)監(jiān)控聊天面板中的UI對象
public override void Start(){if (State == TaskState.Stop){State = TaskState.Runing;}else {return;}Thread th = new Thread(new ThreadStart(() =>{while (State == TaskState.Runing){var currentChatList = UI_WX_Window.Current.Find("/Pane/Pane[1]/Pane[2]/Pane/Pane/Pane/List");if (currentChatList == null || currentChatList.ControlType != FlaUI.Core.Definitions.ControlType.List){Thread.Sleep(1000);continue;}var source = currentChatList.FindAllChildren();var tempMessageSource = new List<WXRealMsgEntity>();source.ToList().ForEach(item =>{if (item.ControlType == FlaUI.Core.Definitions.ControlType.ListItem){var buttonName = item.FindFirstByXPath("/Pane/Button")?.Name;var time = item.FindFirstByXPath("/Pane/Pane/Pane[1]/Text")?.Name;var lastMessage = item.FindFirstByXPath("/Pane/Pane/Pane[2]/Text")?.Name;var count = item.FindFirstByXPath("/Pane/Text")?.Name;var messageitem = new WXRealMsgEntity { UserName = buttonName, Time = time, CurrentMessage = lastMessage, Count = count };tempMessageSource.Add(messageitem);if (historyMessageSource != null){//與歷史消息比較//var cnt = historyMessageSource.Count(s => s.UserName == messageitem.UserName//&& messageitem.Time == s.Time//&& messageitem.CurrentMessage == s.CurrentMessage//&& messageitem.Count == s.Count);var cnt = historyMessageSource.Count(s => s.UserName == messageitem.UserName && messageitem.CurrentMessage == s.CurrentMessage);if (cnt == 0){//有新消息SetMessage(messageitem.UserName + "發(fā)送給新消息你:" + messageitem.CurrentMessage);if (ReplyUser.Count(ss => ss.Contains(messageitem.UserName))>0){//自動回復UI_WX_Window.Current.ClickElement(item);Thread.Sleep(200);SendWXMsg(messageitem.UserName,ReplyMessage);//需要將歷史消息本條重置SetMessage( "自動回復消息給"+messageitem.UserName+":" + ReplyMessage);messageitem.CurrentMessage = ReplyMessage;}}}}});historyMessageSource = tempMessageSource;Thread.Sleep(1000);}}));th.Start();base.Start();}
(2)發(fā)送消息
public void SendWXMsg(string name, string message){var SendInput = GetSendInput();if (SendInput != null){SetText(new WXMessageEntity { Info = message, Type = WXMessageType.Text }, SendInput, false);var SendButton = GetSendButton();if (SendButton != null){UI_WX_Window.Current.ClickElement(SendButton);SystemLog.Info("向聯(lián)系人【" + name + "】發(fā)送消息成功");}}else{SystemLog.Error("【" + name + "】不是有效聯(lián)系人");}}
上一篇 (12)PC端微信自動化測試-C#采集微信聊天記錄
如果讀者對上述文章存在不清晰的地方可以找本人獲取運行源碼來學習,QQ 978124155