學(xué)網(wǎng)站建設(shè)需要什么軟件百度外包公司有哪些
本篇文章實(shí)現(xiàn)了微信自動(dòng)接收最新的實(shí)時(shí)聊天信息,并對(duì)當(dāng)前實(shí)時(shí)的聊天信息做出對(duì)應(yīng)的回復(fù)。
可以自行接入人工智能或者結(jié)合自己的業(yè)務(wù)來(lái)做出自動(dòng)回復(fù)。
下面視頻是軟件實(shí)際效果
自動(dòng)接收消息并回復(fù)
實(shí)現(xiàn)的邏輯是實(shí)時(shí)監(jiān)控微信的聊天面板中UI對(duì)象來(lái)判斷是否有最新的消息過(guò)來(lái),如果沒(méi)有則繼續(xù)監(jiān)聽(tīng),如果有則點(diǎn)擊UI對(duì)象切換到當(dāng)前聊天面板,并找到聊天面板中的輸入框和發(fā)送按鈕元素來(lái)進(jìn)行回復(fù)。
(1)監(jiān)控聊天面板中的UI對(duì)象
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){//自動(dòng)回復(fù)UI_WX_Window.Current.ClickElement(item);Thread.Sleep(200);SendWXMsg(messageitem.UserName,ReplyMessage);//需要將歷史消息本條重置SetMessage( "自動(dòng)回復(fù)消息給"+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端微信自動(dòng)化測(cè)試-C#采集微信聊天記錄
如果讀者對(duì)上述文章存在不清晰的地方可以找本人獲取運(yùn)行源碼來(lái)學(xué)習(xí),QQ 978124155