public void AssertNotExist(ImgPattern imgPtn, string message, int timeout = 0) { AssertFalse(Exists(imgPtn, timeout), message); }
/// <summary> /// 等待某元素出现,不返回值 /// </summary> /// <param name="imgPtn"></param> /// <param name="timeout">手动设置超时</param> public void Wait(ImgPattern imgPtn, int timeout = 0) { if(Exists(imgPtn, timeout)) return; else throw new FindFailException(imgPtn.PicName); }
/// <summary> /// 等待某图片消失 /// </summary> /// <param name="imgPtn"></param> /// <param name="timeout"></param> public void WaitVanish(ImgPattern imgPtn, int timeout = 0) { int waitTimeOut = timeout == 0 ? autoWaitTimeout : timeout; Clock.Start(); //循环等待检测直到找到或超时 while(Clock.Tick() < waitTimeOut) { if(NotExist(imgPtn)) return; } throw new VanishFailException(imgPtn.PicName); }
public void RightClick(ImgPattern imgPtn) { Point p = Find(imgPtn); appWin.Mouse.RightClick(p.X, p.Y); Wait(opInterval); }
/// <summary> /// 清除文本框内容 输入新内容 /// </summary> /// <param name="imgPtn"></param> /// <param name="text"></param> public void Say(ImgPattern imgPtn,string text) { DoubleClick(imgPtn); ShortcutKey("LControl", "A"); Press("Back"); Window edit = Window.GetMousePointWindow(); edit.Say(text); }
/// <summary> /// 暂时还没实现好 /// </summary> /// <param name="imgPtn"></param> /// <param name="fontColor"></param> /// <returns></returns> public string Ocr(ImgPattern imgPtn,string fontColor) { //没找到会自动抛错 Point p = Find(imgPtn); int x1, y1, x2, y2; x1 = p.X; y1 = p.Y; x2 = p.X + imgPtn.Width; y2 = p.X + imgPtn.Height; string text = appWin.Ocr.OcrScreen(x1, y1, x2, y2, fontColor, 0.8); return text; }
public void OnApear(ImgPattern imgPtn,Action<ImgPattern> action) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e) { if(Exists(imgPtn)) action(imgPtn); }; timers.Add(timer); }
public void Hover(ImgPattern imgPtn) { Point p = Find(imgPtn); appWin.Mouse.MoveTo(p.X, p.Y); Wait(opInterval); }
/// <summary> /// 判断图片是否不存在,不循环检测,直接查找然后返回 /// </summary> /// <param name="imgPtn"></param> /// <returns></returns> public bool NotExist(ImgPattern imgPtn) { Point p = FindFast(imgPtn); return IR.PointExist(p) == false; }
public List<Point> FindAll(ImgPattern imgPtn) { List<Point> matchs = new List<Point>(); matchs = appWin.IR.FindAllPic(imgPtn.PicName, imgPtn.Delta, imgPtn.Similar, imgPtn.Direction); var temp = from m in matchs select new Point() { X = m.X + imgPtn.Offset_X, Y = m.Y + imgPtn.Offset_Y }; return temp.ToList(); }
/// <summary> /// 快速查找图像,直接查找当前帧 /// </summary> /// <param name="imgPtn">找到就返回计算过的p,没找到就返回p(-1,-1)</param> /// <returns></returns> public Point FindFast(ImgPattern imgPtn) { Point p; if(imgPtn.IsFullScreen) { p = appWin.IR.FindPic(scriptPath+ imgPtn.PicName, imgPtn.Delta, imgPtn.Similar, imgPtn.Direction); } else { p = appWin.IR.FindPic(imgPtn.X1, imgPtn.Y1, imgPtn.X2, imgPtn.Y2,scriptPath+ imgPtn.PicName, imgPtn.Delta, imgPtn.Similar, imgPtn.Direction); } //没有找到就直接返回 if(IR.PointExist(p) == false) { return p; } //返回目标元素的中心坐标 p.X += imgPtn.Offset_X; p.Y += imgPtn.Offset_Y; return p; }
/// <summary> /// 查找图像,会不断重试直到找到或超时抛错 /// </summary> /// <param name="imgPtn"></param> /// <param name="timeout"></param> /// <returns></returns> public Point Find(ImgPattern imgPtn,int timeout=0) { int waitTimeOut = timeout == 0 ? autoWaitTimeout : timeout; Clock.Start(); while (Clock.Tick() < waitTimeOut) { Point p = FindFast(imgPtn); if(IR.PointExist(p) == false) { continue; } return p; } //最后没有找到就抛错 throw new FindFailException(imgPtn.PicName); }
public bool Exists(string PicName,int timeout=0) { ImgPattern imgPtn = new ImgPattern(PicName); bool result = Exists(imgPtn,timeout); return result; }
/// <summary> /// 循环等待判断图像是否存在,不抛出错误,返回值 /// </summary> /// <param name="imgPtn"></param> /// <param name="timeout">毫秒</param> /// <returns></returns> public bool Exists(ImgPattern imgPtn, int timeout = 0) { int waitTimeOut = timeout == 0 ? autoWaitTimeout : timeout; Clock.Start(); //循环等待检测直到找到或超时 while(Clock.Tick() < waitTimeOut) { Point p = FindFast(imgPtn); if(IR.PointExist(p)) return true; } return false; }
public void DragDrop(ImgPattern fromImgPtn, ImgPattern toImgPtn) { Hover(fromImgPtn); appWin.Mouse.LeftDown(); Hover(toImgPtn); appWin.Mouse.LeftUp(); Wait(opInterval); }
public void DoubleClick(ImgPattern imgPtn) { Point p = Find(imgPtn); appWin.Mouse.LeftDoubleClick(p.X, p.Y); Wait(opInterval); }