示例#1
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 public void AssertNotExist(ImgPattern imgPtn, string message, int timeout = 0)
 {
     AssertFalse(Exists(imgPtn, timeout), message);
 }
示例#2
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 /// <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);
 }
示例#3
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
        /// <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);
        }
示例#4
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 public void RightClick(ImgPattern imgPtn)
 {
     Point p = Find(imgPtn);
     appWin.Mouse.RightClick(p.X, p.Y);
     Wait(opInterval);
 }
示例#5
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 /// <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);
 }
示例#6
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
        /// <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;
        }
示例#7
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 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);
 }
示例#8
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 public void Hover(ImgPattern imgPtn)
 {
     Point p = Find(imgPtn);
     appWin.Mouse.MoveTo(p.X, p.Y);
     Wait(opInterval);
 }
示例#9
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 /// <summary>
 /// 判断图片是否不存在,不循环检测,直接查找然后返回
 /// </summary>
 /// <param name="imgPtn"></param>
 /// <returns></returns>
 public bool NotExist(ImgPattern imgPtn)
 {
     Point p = FindFast(imgPtn);
     return IR.PointExist(p) == false;
 }
示例#10
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 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();
 }
示例#11
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
        /// <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;
        }
示例#12
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 /// <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);
 }
示例#13
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 public bool Exists(string PicName,int timeout=0)
 {
     ImgPattern imgPtn = new ImgPattern(PicName);
     bool result = Exists(imgPtn,timeout);
     return result;
 }
示例#14
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 /// <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;
 }
示例#15
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 public void DragDrop(ImgPattern fromImgPtn, ImgPattern toImgPtn)
 {
     Hover(fromImgPtn);
     appWin.Mouse.LeftDown();
     Hover(toImgPtn);
     appWin.Mouse.LeftUp();
     Wait(opInterval);
 }
示例#16
0
文件: Sugoi.cs 项目: kaluluosi/Sugoi
 public void DoubleClick(ImgPattern imgPtn)
 {
     Point p = Find(imgPtn);
     appWin.Mouse.LeftDoubleClick(p.X, p.Y);
     Wait(opInterval);
 }