(9)微信UI自动化-监控微信网络状态(C#)
微信定时发送消息
(1)自动化程序在运行过程中应为依赖的主程序是微信,所以要对微信网络状态进行监控,如果发现微信处于断网状态的情况则自动化程序可以执行对应操作。
(2)实现思路,开启一个线程定时监控微信的网络状态面板是否出现。
因为是监控一类的操作需要用到BaseMonitor类
该类定义在微信UI自动化-监控微信进程运行状态 文章中
以下是监控网络变化的监控类
namespace OnlineRetailers.Extension.Page.UIAuto
{/// /// 监控微信UI是否链接网络/// public class UI_WX_NetWork_Monitor: BaseMonitor{public event EventHandler NetWorkEvent ;public NetWorkStatus Status { get; private set; } = NetWorkStatus.UnKnow;public override void Monitor(){if (MonitorStatus== MonitorStatus.Monitoring)return;SystemLog.Info("启动微信网络状态监听");MonitorStatus = MonitorStatus.Monitoring;Thread th = new Thread(new ThreadStart(() =>{while (MonitorStatus == MonitorStatus.Monitoring){if (WXWin32.GetWeiXin() != IntPtr.Zero){try{var netWork = UI_WX_Window.Current.Window.FindFirstByXPath("Pane[1]/Pane[2]/Text[2]");if (netWork != null && netWork.Name.Contains("网络不可用")){DoNetWork(NetWorkStatus.Error);}else{DoNetWork(NetWorkStatus.Ok);}}catch (Exception ex) {SystemLog.Error(ex.StackTrace);}}Thread.Sleep(1000);}ExecuteMonitorStop();}));th.Start();}private void DoNetWork(NetWorkStatus status){if (Status == status)return;Status = status;if (NetWorkEvent != null){NetWorkEvent(this, new NetWorkEventArgs { Status=status});}}public override void Break(){base.Break();SystemLog.Info("关闭网络状态监听");}}public class NetWorkEventArgs : EventArgs{public NetWorkStatus Status { get; set; }}public enum NetWorkStatus{UnKnow=0,Ok = 1,Error = 2}
} 调用
public MainWindow(){UI_WX_NetWork_Monitor netWork = new UI_WX_NetWork_Monitor();netWork.NetWorkEvent += NetWork_NetWorkEvent;netWork.Monitor();}private void NetWork_NetWorkEvent(object sender, NetWorkEventArgs e){if (e.Status == NetWorkStatus.Error){//断网后的操作}if (e.Status == NetWorkStatus.Ok){//网络正常的操作}} (8)微信UI自动化-监控微信进程运行状态(C#)
(10)微信UI自动化-跟随微信窗口移动(C#)
因为文章所表达的意思可能无法满足每一位阅读需求,需要源码或者支持请联系作者QQ 978124155
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
