Exemple #1
0
        public List <Bitmap> collectMapMiniPath()
        {
            mAuto.writeStatus("Thu thập mảnh bản đồ");
            List <Bitmap> mapPaths = new List <Bitmap>();

            // Mở bảng đồ mini
            //mAuto.clickToImage(Constant.ImagePathMiniMap);
            mAuto.sendKey("~");

            var full_screen = CaptureHelper.CaptureWindow(mHWnd);

            // Tắt các bảng nổi
            mAuto.closeAllDialog();

            Bitmap iBtn = ImageScanOpenCV.GetImage(Constant.ImagePathGlobalMiniMap);
            var    pBtn = ImageScanOpenCV.FindOutPoint((Bitmap)full_screen, iBtn);

            if (pBtn != null)
            {
                int x_start_point = pBtn.Value.X + 0;
                int y_start_point = pBtn.Value.Y + 60;
                for (int y = 0; y < 5; y++)
                {
                    for (int x = 0; x < 4; x++)
                    {
                        mapPaths.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(
                                                                 x_start_point + (x * 100),
                                                                 y_start_point + (y * 56),
                                                                 100, 56)));
                    }
                }
            }

            return(mapPaths);
        }
        private void buttonClickRightOnImage_Click(object sender, EventArgs e)
        {
            AutoIT au3  = new AutoIT();
            IntPtr hWnd = IntPtr.Zero;

            // Find define handle of project
            hWnd = AutoControl.FindWindowHandle(null, textBoxTestID.Text);

            if (hWnd == IntPtr.Zero)
            {
                MessageBox.Show("Không tìm thấy nhân vật này đang được chạy.");
                return;
            }

            var imagePath = textBoxTestPath.Text;

            var screen = CaptureHelper.CaptureWindow(hWnd);

            screen.Save("test.png");
            Bitmap iBtn = ImageScanOpenCV.GetImage(imagePath);
            var    pBtn = ImageScanOpenCV.FindOutPoint((Bitmap)screen, iBtn);

            if (pBtn != null)
            {
                au3.clickRight(textBoxTestID.Text, 1, pBtn.Value.X + int.Parse(numericUpDownTestX.Value.ToString()), pBtn.Value.Y + int.Parse(numericUpDownTestY.Value.ToString()));
                Thread.Sleep(Constant.TimeShort);
            }
        }
        /*
         * Function: isMoving
         * Description: Kiểm tra nhân vật đang di chuyển
         * Author: Tử La Lan - Facebook: https://www.facebook.com/Tu.La.Lan.NT
         * Created At: 2019-11-10 - Updated At: 2019-11-10
         */
        public bool isMoving()
        {
            if (mCharacter.Running == 0)
            {
                return(false);
            }

            int  i      = 0;
            bool moving = true;

            while (moving && i < Constant.MaxLoop && mCharacter.Running != 0)
            {
                // Chụp màn hình
                var screen_first = CaptureHelper.CaptureWindow(mHWnd);
                screen_first = CaptureHelper.CropImage((Bitmap)screen_first, new Rectangle(180, 0, 250, 250));

                // Chờ 3s
                Thread.Sleep(1500);
                var screen_second = CaptureHelper.CaptureWindow(mHWnd);

                // Kiểm tra hình trước có trong hình sau hay không
                var p = ImageScanOpenCV.FindOutPoint((Bitmap)screen_second, (Bitmap)screen_first);
                if (p != null)
                {
                    moving = false;
                    return(moving);
                }
            }

            return(moving);
        }
Exemple #4
0
        public void LoginTranS()
        {
            string strCmdText;
            string userName = Environment.UserName;

            strCmdText = @"/C C:\Users\" + userName + @"\AppData\Roaming\TranS\TranS.exe";

            Process p = new Process();

            p.StartInfo.FileName  = "CMD.exe";
            p.StartInfo.Arguments = strCmdText;

            p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

            p.Start();
            Thread.Sleep(4000);

            //click Student
            var screen = CaptureHelper.CaptureScreen();

            screen.Save("mainScreen.png");
            var subBitmap = ImageScanOpenCV.GetImage("btnHocVien.bmp");
            var resBitmap = ImageScanOpenCV.FindOutPoint((Bitmap)screen, subBitmap);

            if (resBitmap != null)
            {
                string x = (resBitmap.ToString()).Remove(0, 3).Remove(3, 7);
                string y = (resBitmap.ToString()).Remove(0, 9).Remove(3, 1);
                AutoControl.MouseClick(int.Parse(x) + 20, int.Parse(y) + 20, EMouseKey.LEFT);
            }

            Thread.Sleep(500);

            //Send Enter ID
            try
            {
                AutoControl.SendStringFocus(txtBoxID.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("Bạn chưa nhập ID");
            }


            //Click Join now
            var screenID = CaptureHelper.CaptureScreen();

            screenID.Save("mainScreen.png");
            var subBitmapID = ImageScanOpenCV.GetImage("btnVaoPhong.bmp");
            var resBitmapID = ImageScanOpenCV.FindOutPoint((Bitmap)screenID, subBitmapID);

            if (resBitmapID != null)
            {
                string x1 = (resBitmapID.ToString()).Remove(0, 3).Remove(3, 7);
                string y1 = (resBitmapID.ToString()).Remove(0, 9).Remove(3, 1);
                AutoControl.MouseClick(int.Parse(x1) + 20, int.Parse(y1) + 20, EMouseKey.LEFT);
            }
            Application.Exit();
        }
Exemple #5
0
        //IMG OpenCV
        public void Tap_Img(string deviceID, Bitmap ImgFind)
        {
            Bitmap bm     = (Bitmap)ImgFind.Clone();
            var    screen = ADBHelper.ScreenShoot(deviceID);
            var    Point  = ImageScanOpenCV.FindOutPoint(screen, bm);

            if (Point != null)
            {
                ADBHelper.Tap(deviceID, Point.Value.X, Point.Value.Y);
                return;
            }
            //MessageBox.Show("Tìm không ra");
        }
Exemple #6
0
        private static System.Drawing.Point?GetPoint(string id, Bitmap img)
        {
            var    screen  = ADBHelper.ScreenShoot(id, false);
            Bitmap tmp_img = (Bitmap)img.Clone();
            Bitmap tmp_scr = (Bitmap)screen.Clone();
            var    point   = ImageScanOpenCV.FindOutPoint(tmp_scr, tmp_img);

            return(point);
            //var aa = ImageScanOpenCV.Find(screen, D_FLAG);
            //if (aa != null)
            //{
            //    aa.Save("aaa.png");
            //}
        }
Exemple #7
0
        private void btnExportPoint_Click(object sender, EventArgs e)
        {
            var screen = CaptureHelper.CaptureScreen();

            screen.Save("mainScreen.PNG");

            var subBitmap = ImageScanOpenCV.GetImage("template.PNG");

            var resBitMap = ImageScanOpenCV.FindOutPoint((Bitmap)screen, subBitmap);

            if (resBitMap != null)
            {
                MessageBox.Show(resBitMap.ToString());
            }
        }
Exemple #8
0
        private void btnCheckImage_Click(object sender, EventArgs e)
        {
            var screen = CaptureHelper.CaptureScreen();

            screen.Save("mainScreen.PNG");

            var subBitmap = ImageScanOpenCV.GetImage("template.PNG");

            var resBitMap = ImageScanOpenCV.Find((Bitmap)screen, subBitmap);

            if (resBitMap != null)
            {
                resBitMap.Save("res.PNG");
            }
        }
Exemple #9
0
 /// <summary>
 /// Tìm tọa độ của ảnh
 /// </summary>
 /// <param name="_main">Ảnh gốc</param>
 /// <param name="_sub">Ảnh cần tìm</param>
 /// <param name="p">xuất ra tọa độ khi tìm thấy, nếu không thấy thì trả về 0,0</param>
 /// <returns>Trả về bool, out point</returns>
 public static bool FindImageOutPoint(Bitmap _main, Bitmap _sub, out Point p)
 {
     p = new Point();
     try
     {
         p = (Point)ImageScanOpenCV.FindOutPoint(_main, _sub);
         return(true);
     }
     catch (Exception ex)
     {
         p = Point.Empty;
         MessageBox.Show(ex.Message);
         return(false);
     }
 }
Exemple #10
0
        //IMG OpenCV
        public static bool Tap_Img(string param, string nameOrId, Bitmap imgFind)
        {
            var bm     = (Bitmap)imgFind.Clone();
            var screen = ScreenShoot(param, nameOrId);
            var point  = ImageScanOpenCV.FindOutPoint(screen, bm);

            if (point == null)
            {
                return(false);
            }
            Tap(param, nameOrId, point.Value.X, point.Value.Y);
            return(true);

            //MessageBox.Show("Tìm không ra");
        }
Exemple #11
0
        private Point CheckImageUntilFound(Bitmap _main, Bitmap _sub, int _ofsetX = 7, int _ofsetY = 7)
        {
            try
            {
                Point p = (Point)ImageScanOpenCV.FindOutPoint(_main, _sub);
                p.X += _ofsetX;
                p.Y += _ofsetY;
                return(p);
            }
            catch (Exception)
            {
                Thread.Sleep(300);

                return(CheckImageUntilFound(RetakePicMain(), _sub, _ofsetX, _ofsetY));
            }
        }
Exemple #12
0
        public static Point?FindImage(string param, string nameOrId, string imagePath, int count = 5)
        {
            var files = new DirectoryInfo(imagePath).GetFiles();

            do
            {
                Bitmap mainBitmap = null;
                var    num        = 3;
                do
                {
                    try
                    {
                        mainBitmap = ScreenShoot(param, nameOrId);
                        break;
                    }
                    catch (Exception)
                    {
                        --num;
                        Delay(1000.0);
                    }
                } while (num > 0);

                if (mainBitmap == null)
                {
                    return(new Point?());
                }
                var image = new Point?();
                foreach (var fileSystemInfo in files)
                {
                    var subBitmap = (Bitmap)Image.FromFile(fileSystemInfo.FullName);
                    image = ImageScanOpenCV.FindOutPoint(mainBitmap, subBitmap);
                    if (image.HasValue)
                    {
                        break;
                    }
                }

                if (image.HasValue)
                {
                    return(image);
                }
                Delay(2000.0);
                --count;
            } while (count > 0);

            return(new Point?());
        }
        public static Point?findGameImage(Bitmap image, string imageName = "", bool cropMode = false, int x = 0, int y = 0, int width = 0, int height = 0, bool capture = false)
        {
            var scene = CaptureHelper.CaptureWindow(Global.mainHandle);

            if (cropMode == true)
            {
                scene = CaptureHelper.CropImage(scene, new System.Drawing.Rectangle(x, y, width, height));
            }
            var result = ImageScanOpenCV.FindOutPoint((Bitmap)scene, image);

            if (capture == true && result != null)
            {
                var imageSave = ImageScanOpenCV.Find((Bitmap)scene, image);
                imageSave.Save("./img/debug/imageCapture" + result.Value.X + "_" + result.Value.Y + ".png");
            }
            return(result);
        }
        /*
         * Function: Find Image
         * Description: Find position of image on window
         * Author: Tử La Lan - Facebook: https://www.facebook.com/Tu.La.Lan.NT
         * Created At: 2019-11-09 - Updated At: 2019-11-09
         */
        public bool findImage(string imagePath)
        {
            if (mCharacter.Running == 0)
            {
                return(false);
            }

            var    screen = CaptureHelper.CaptureWindow(mHWnd);
            Bitmap iBtn   = ImageScanOpenCV.GetImage(imagePath);
            var    pBtn   = ImageScanOpenCV.FindOutPoint((Bitmap)screen, iBtn);

            if (pBtn != null)
            {
                return(true);
            }

            return(false);
        }
        /*
         * Function: Click to Image
         * Description: Find position of image on window and click it
         * Author: Tử La Lan - Facebook: https://www.facebook.com/Tu.La.Lan.NT
         * Created At: 2019-11-09 - Updated At: 2019-11-09
         */
        public bool clickImage(Bitmap image, int xRange = 0, int yRange = -20, int numClick = 1, int wait = Constant.TimeShort)
        {
            if (mCharacter.Running == 0)
            {
                return(false);
            }

            var screen = CaptureHelper.CaptureWindow(mHWnd);
            var pBtn   = ImageScanOpenCV.FindOutPoint((Bitmap)screen, image);

            if (pBtn != null)
            {
                au3.click(mWindowName, numClick, pBtn.Value.X + xRange, pBtn.Value.Y + yRange);
                Thread.Sleep(wait);
                return(true);
            }
            return(false);
        }
        /*
         * Function: Move mouse
         * Description: Find position of image on window and move mouse to it
         * Author: Tử La Lan - Facebook: https://www.facebook.com/Tu.La.Lan.NT
         * Created At: 2019-11-09 - Updated At: 2019-11-09
         */
        public bool moveToImage(string imagePath, int xRange = 0, int yRange = -20)
        {
            if (mCharacter.Running == 0)
            {
                return(false);
            }

            var    screen = CaptureHelper.CaptureWindow(mHWnd);
            Bitmap iBtn   = ImageScanOpenCV.GetImage(imagePath);
            var    pBtn   = ImageScanOpenCV.FindOutPoint((Bitmap)screen, iBtn);

            if (pBtn != null)
            {
                au3.move(mWindowName, pBtn.Value.X + xRange, pBtn.Value.Y + yRange);
                return(true);
            }
            return(false);
        }
        /*
         * Function: Click to Image
         * Description: Find position of image on window and click it
         * Author: Tử La Lan - Facebook: https://www.facebook.com/Tu.La.Lan.NT
         * Created At: 2019-11-09 - Updated At: 2019-11-09
         */
        public bool clickRightToImage(string imagePath, int xRange = 0, int yRange = -20)
        {
            if (mCharacter.Running == 0)
            {
                return(false);
            }

            var    screen = CaptureHelper.CaptureWindow(mHWnd);
            Bitmap iBtn   = ImageScanOpenCV.GetImage(imagePath);
            var    pBtn   = ImageScanOpenCV.FindOutPoint((Bitmap)screen, iBtn);

            if (pBtn != null)
            {
                au3.clickRight(mWindowName, 1, pBtn.Value.X + xRange, pBtn.Value.Y + yRange);
                Thread.Sleep(Constant.TimeShort);
                return(true);
            }
            return(false);
        }
Exemple #18
0
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            var screen = CaptureHelper.CaptureScreen();

            screen.Save("mainScreen.png");
            var subBit         = ImageScanOpenCV.GetImage("commentSection.PNG");
            var sendpost       = ImageScanOpenCV.GetImage("SendComment.PNG");
            var ComsecLocation = ImageScanOpenCV.FindOutPoint((Bitmap)screen, subBit);

            AutoControl.MouseClick((Point)ComsecLocation);
            //autoItX3.Send("Hello");
            Thread.Sleep(1000);
            screen = CaptureHelper.CaptureScreen();
            var   sendLocation = ImageScanOpenCV.FindOutPoint((Bitmap)screen, sendpost);
            Point sendlo       = (Point)sendLocation;

            sendlo.X += 3;
            sendlo.Y += 7;
            AutoControl.MouseClick((Point)sendlo);
        }
Exemple #19
0
        public static Point?findExpMonster()
        {
            int   i = 0;
            Point?expMonsterImage = null;
            Image scene           = null;;

            GameHelper.Log("Finding exp monster....");
            while (i < 5)
            {
                scene           = CaptureHelper.CaptureWindow(Global.mainHandle);
                expMonsterImage = ImageScanOpenCV.FindOutPoint((Bitmap)scene, expImage);
                //expMonsterImage = GameImage.findGameImage(expImage);
                if (expMonsterImage != null)
                {
                    GameHelper.Log("Found Exp Monster(Middle)!!!");
                    break;
                }
                expMonsterImage = ImageScanOpenCV.FindOutPoint((Bitmap)scene, nearExpImage);
                if (expMonsterImage != null)
                {
                    GameHelper.Log("Found Exp Monster(Near)!!!");
                    break;
                }
                expMonsterImage = ImageScanOpenCV.FindOutPoint((Bitmap)scene, farExpImage);
                if (expMonsterImage != null)
                {
                    GameHelper.Log("Found Exp Monster(Far)!!!");
                    break;
                }
                i++;
                GameHelper.Delay(200);
            }
            if (expMonsterImage == null)
            {
                GameHelper.Log("Found Exp Monster Fail!!!");
            }
            return(expMonsterImage);
        }
Exemple #20
0
        private void button18_Click(object sender, EventArgs e)
        {
            var handle = AutoControl.FindWindowHandle("LDMultiPlayerMainFrame" == "" ? null : "LDMultiPlayerMainFrame", "" == "" ? null : "");

            #region // khởi tạo và restore file backup


            #endregion

            #region // ấn nút bắt đầu
            var sub   = (Bitmap)Bitmap.FromFile("data//data.png");
            var main  = (Bitmap)CaptureHelper.CaptureWindow(handle);
            var point = ImageScanOpenCV.FindOutPoint(main, sub);
            if (point != null)
            {
                //   AutoControl.SendClickOnPosition(handle, point.Value.X, point.Value.Y);
                var       pointToClick = AutoControl.GetGlobalPoint(handle, point.Value.X + 7, point.Value.Y + 5);
                EMouseKey mouseKey     = EMouseKey.DOUBLE_LEFT;
                AutoControl.BringToFront(handle);
                AutoControl.MouseClick(pointToClick, mouseKey);
            }
            #endregion
        }
        public static List <int> findMultiGameImage(Bitmap[] images, bool cropMode = false, int x = 0, int y = 0, int width = 0, int height = 0, bool capture = false)
        {
            List <int> result = new List <int>();
            var        scene  = CaptureHelper.CaptureWindow(Global.mainHandle);

            if (cropMode == true)
            {
                scene = CaptureHelper.CropImage(scene, new System.Drawing.Rectangle(x, y, width, height));
            }
            var   index = 0;
            Point?resultScanImage;

            foreach (Bitmap image in images)
            {
                resultScanImage = null;
                resultScanImage = ImageScanOpenCV.FindOutPoint((Bitmap)scene, image);
                if (resultScanImage != null)
                {
                    result.Add(index);
                }
                index++;
            }
            return(result);
        }
Exemple #22
0
        private static string CheckImage(string id, Bitmap img)
        {
            //Task l = new Task(() =>
            //{
            //while (true)
            //{
            var screen = ADBHelper.ScreenShoot(id);
            var point  = ImageScanOpenCV.FindOutPoint(screen, img);
            var aa     = ImageScanOpenCV.Find(screen, img);

            aa.Save("aaa.png");
            if (point != null)
            {
                //Dispatcher.BeginInvoke(new ThreadStart(() => rtb1.AppendText("Home!!!")));
                //break;

                return("find!");
            }

            return("");
            //}
            //});
            //l.Start();
        }
Exemple #23
0
        public void chayQ()
        {
            // Xóa ghi chép chat
            mAuto.clickImageByGroup("global", "chatclear", false, true);

            List <Bitmap> pos = new List <Bitmap>();

            int loop = 0;

            while (!checkDaDanhNhiemVu())
            {
                loop++;
                if (loop >= 5)
                {
                    Helper.showAlert(mCharacter.ID, "Nhiệm vụ phi tặc này có vấn đề");
                }

                // Mở menu phải
                mAuto.moMenuPhai();

                // Nếu vip dưới 6 thì mới chạy cái này
                if (mCharacter.VipLevel < 6 && mCharacter.VipLevel > 0)
                {
                    // Bay
                    mAuto.bay();
                }

                // Tìm tới tọa độ và gọi quái
                while (!checkDaGoiQuai())
                {
                    // Mở túi nhiệm vụ
                    mAuto.closeAllDialog();
                    mAuto.clickToImage(Constant.ImagePathGlobalTui);
                    mAuto.clickImageByGroup("global", "tui_tab_nhiemvu", true, true);

                    // Nhấp đôi vào bản đồ nhiệm vụ
                    mAuto.clickToImage(Constant.ImagePathTriAnBanDoNhiemVu, 0, -20, 2);

                    // Chờ 2s để load map
                    Thread.Sleep(2000);

                    mAuto.closeAllDialog();

                    // Nếu vip dưới 6 thì mới chạy cái này
                    if (mCharacter.VipLevel < 6 && mCharacter.VipLevel > 0)
                    {
                        do
                        {
                            // Nhấp vào tọa độ
                            mAuto.writeStatus("Nhấp vào tọa độ ...");
                            mAuto.clickToImage(Constant.ImagePathTriAnToaDo, 10, -25);
                            mAuto.clickToImage(Constant.ImagePathTriAnToaDo2, 10, -25);
                        } while (mAuto.isMoving());
                    }

                    var full_screen = CaptureHelper.CaptureWindow(mHWnd);

                    // Lưu tracking
                    Bitmap bChuyenKenh  = ImageScanOpenCV.GetImage(Constant.ImagePathGlobalChuyenKenh);
                    var    pBChuyenKenh = ImageScanOpenCV.FindOutPoint((Bitmap)full_screen, bChuyenKenh);

                    if (pBChuyenKenh != null)
                    {
                        Bitmap tracking = CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBChuyenKenh.Value.X, pBChuyenKenh.Value.Y, 180, 20));
                        tracking.Save("tracking/trian_" + mCharacter.ID + ".png", ImageFormat.Png);
                    }
                }

                mAuto.closeAllDialog();

                // Nếu vip dưới 6 thì mới chạy cái này
                if (mCharacter.VipLevel < 6 && mCharacter.VipLevel > 0)
                {
                    // Xuống
                    mAuto.bayXuong();
                }

                // Đóng menu phải
                mAuto.dongMenuPhai();

                // Tìm phản quân hoặc phi tặc
                int x = 0;
                while (!mAuto.findImage(Constant.ImagePathDoiThoai + "trian" + ".png") && x < lPTPQ.Count)
                {
                    if (mAuto.findImage(lPTPQ[x].imagePath))
                    {
                        mAuto.clickToImage(lPTPQ[x].imagePath, lPTPQ[x].x, lPTPQ[x].y);
                    }

                    x++;
                }

                // Đánh
                mAuto.clickToImage(Constant.ImagePathDoiThoai + "trian" + ".png");

                // Nghỉ 5s nếu nhân vật đang trong trận đấu
                while (mAuto.dangTrongTranDau())
                {
                    Thread.Sleep(5000);
                }

                if (checkDaDanhNhiemVu())
                {
                    break;
                }

                // Lưu 4 vị trí xung quanh vị trí hiện tại
                if (pos.Count <= 0)
                {
                    // Mở bảng đồ mini
                    mAuto.clickToImage(Constant.ImagePathMiniMap);

                    Thread.Sleep(1000);

                    var full_screen = CaptureHelper.CaptureWindow(mHWnd);

                    // Tắt các bảng nổi
                    mAuto.closeAllDialog();

                    // Lưu 4 vị trí
                    Bitmap iBtn = ImageScanOpenCV.GetImage(Constant.ImagePathInMapChar);
                    var    pBtn = ImageScanOpenCV.FindOutPoint((Bitmap)full_screen, iBtn);

                    if (pBtn != null)
                    {
                        pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBtn.Value.X + (-15), pBtn.Value.Y + (-30), 30, 30)));
                        pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBtn.Value.X + (11), pBtn.Value.Y + (0), 30, 30)));
                        pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBtn.Value.X + (-15), pBtn.Value.Y + (20), 30, 30)));
                        pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBtn.Value.X + (-32), pBtn.Value.Y + (0), 30, 30)));
                    }
                }

                // Di chuyển đến vị trí quanh ptpq
                int i = 0;
                while (!mAuto.findImage(Constant.ImagePathDoiThoai + "trian" + ".png") && i < pos.Count)
                {
                    // Mở menu phải
                    mAuto.moMenuPhai();

                    // Bay lên
                    mAuto.bay();

                    // Mở bảng đồ mini
                    mAuto.clickToImage(Constant.ImagePathMiniMap);

                    // Nhấp vào vị trí xung quanh ptpq
                    mAuto.clickImage(pos[i], 15, -15);

                    // Tắt các bảng nổi
                    mAuto.closeAllDialog();

                    // Đóng menu phải
                    mAuto.dongMenuPhai();

                    // Tìm phản quân hoặc phi tặc
                    int y = 0;
                    while (!mAuto.findImage(Constant.ImagePathDoiThoai + "trian" + ".png") && y < lPTPQ.Count)
                    {
                        if (mAuto.findImage(lPTPQ[y].imagePath))
                        {
                            // Mở menu phải
                            mAuto.moMenuPhai();

                            // Bay xuống
                            if (mAuto.findImage(Constant.ImagePathGlobalXuong))
                            {
                                mAuto.bayXuong();
                                Thread.Sleep(3000);
                            }

                            // Đóng menu phải
                            mAuto.dongMenuPhai();

                            mAuto.clickToImage(lPTPQ[y].imagePath, lPTPQ[y].x, lPTPQ[y].y);
                            Thread.Sleep(1000);
                        }

                        y++;
                    }

                    i++;
                }

                // Đánh
                mAuto.clickToImage(Constant.ImagePathDoiThoai + "trian" + ".png");

                // Nghỉ 5s nếu nhân vật đang trong trận đấu
                while (mAuto.dangTrongTranDau())
                {
                    Thread.Sleep(5000);
                }
            }

            if (!checkHoanThanhNhiemVu())
            {
                // Nhấn vào nhận Q Trị An
                mAuto.clickImageByGroup("tri_an", "nhiemvutrianchuanhan", false, true);
                mAuto.clickImageByGroup("tri_an", "nhiemvuphanquandaxong", false, true);
                mAuto.clickImageByGroup("tri_an", "nhiemvuphitacdaxong", false, true);
                // Trả nhiệm vụ
                mAuto.traNhiemVu();
            }
        }
Exemple #24
0
        private void buttonTestCapturePosition_Click(object sender, EventArgs e)
        {
            IntPtr hWnd = IntPtr.Zero;

            // Find define handle of project
            hWnd = AutoControl.FindWindowHandle(null, textBoxTestID.Text);

            if (hWnd == IntPtr.Zero)
            {
                MessageBox.Show("Không tìm thấy nhân vật này đang được chạy.");
            }

            var imagePath = textBoxTestPath.Text;

            // Chụp màn hình
            var full_screen = CaptureHelper.CaptureWindow(hWnd);

            Bitmap        iBtn = ImageScanOpenCV.GetImage(imagePath);
            var           pBtn = ImageScanOpenCV.FindOutPoint((Bitmap)full_screen, iBtn);
            List <Bitmap> pos  = new List <Bitmap>();

            //if (pBtn != null)
            //{
            //    pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBtn.Value.X + (-15), pBtn.Value.Y + (-30), 30, 30)));
            //    pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBtn.Value.X + (11), pBtn.Value.Y + (0), 30, 30)));
            //    pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBtn.Value.X + (-15), pBtn.Value.Y + (20), 30, 30)));
            //    pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(pBtn.Value.X + (-32), pBtn.Value.Y + (0), 30, 30)));
            //}
            //pictureBoxTest1.Image = pos[0];
            //pictureBoxTest2.Image = pos[1];
            //pictureBoxTest3.Image = pos[2];
            //pictureBoxTest4.Image = pos[3];

            //MessageBox.Show(pos.Count.ToString());

            // top: x -15, y -30
            // left: x -30, y 0
            // down: x -15, y 20
            // right: x 11, y 0
            // Click: x 15, y -15



            if (pBtn != null)
            {
                int x_start_point = pBtn.Value.X + 0;
                int y_start_point = pBtn.Value.Y + 60;
                for (int y = 0; y < 4; y++)
                {
                    for (int x = 0; x < 4; x++)
                    {
                        pos.Add(CaptureHelper.CropImage((Bitmap)full_screen, new Rectangle(
                                                            x_start_point + (x * 100),
                                                            y_start_point + (y * 70),
                                                            100, 70)));
                    }
                }
            }

            MessageBox.Show(pos.Count.ToString());

            // screen: h 60, w 100

            // h: 280, w: 400

            // h: 40 * 7, w: 80 * 5
            for (int z = 0; z < pos.Count; z++)
            {
                var picture = new PictureBox
                {
                    Name     = "pictureBox",
                    Size     = new Size(100, 70),
                    Location = new Point(300 + z * 100, 100 + z * 70),
                    Image    = pos[z],
                };
                this.Controls.Add(picture);
            }
        }
Exemple #25
0
        private void button4_Click(object sender, EventArgs e)
        {
            AutoItX3 autoItX3    = new AutoItX3();
            Point    LOLlocation = new Point(805, 175);
            IntPtr   hWnd        = IntPtr.Zero;

            hWnd = AutoControl.FindWindowHandle(null, "Garena - Game Center");
            var child = AutoControl.FindHandle(hWnd, "Chrome_RenderWidgetHostHWND", null);
            var point = AutoControl.GetGlobalPoint(child, LOLlocation);
            int num   = Convert.ToInt32(textBox1.Text);

            AutoControl.BringToFront(hWnd);
            AutoControl.MouseClick(point);
            Thread.Sleep(3000);
            autoItX3.MouseWheel("down", 2);
            Thread.Sleep(3000);
            //var postPoint = AutoControl.GetGlobalPoint(child, 147, 113);// 147 113
            //AutoControl.MouseClick(postPoint);
            //Thread.Sleep(2000);
            int[] arrEndPoint = { 202, 315, 341, 358, 432, 471, 500, 570, 630 }; // for y
            for (int i = 0; i < 2; i++)
            {
                Point startpoint = new Point(951, 12);
                Point endPoint   = new Point(952, 202);
                var   fpoint     = AutoControl.GetGlobalPoint(child, 150, 149);
                for (int j = 0; j < 3; j++)
                {
                    AutoControl.MouseClick(fpoint);
                    Thread.Sleep(3000);
                    var spoint = AutoControl.GetGlobalPoint(child, startpoint);
                    autoItX3.MouseMove(spoint.X, spoint.Y);
                    autoItX3.MouseDown("LEFT");
                    Bitmap screen;
                    for (int p = 0; p < arrEndPoint.Length; p++)
                    {
                        endPoint.Y = arrEndPoint[p];
                        var endP = AutoControl.GetGlobalPoint(child, endPoint);
                        autoItX3.MouseMove(endP.X, endP.Y);
                        screen = (Bitmap)CaptureHelper.CaptureScreen();
                        var subBit         = ImageScanOpenCV.GetImage("commentSection.PNG");
                        var sendpost       = ImageScanOpenCV.GetImage("SendComment.PNG");
                        var ComsecLocation = ImageScanOpenCV.FindOutPoint((Bitmap)screen, subBit);
                        if (ComsecLocation != null)
                        {
                            autoItX3.MouseUp("LEFT");
                            AutoControl.MouseClick((Point)ComsecLocation);
                            autoItX3.Send("Hello");
                            Thread.Sleep(1000);
                            screen = (Bitmap)CaptureHelper.CaptureScreen();
                            var   sendLocation = ImageScanOpenCV.FindOutPoint((Bitmap)screen, sendpost);
                            Point sendlo       = (Point)sendLocation; // can not find  the right so find the near and add a few unit to right point
                            sendlo.X += 3;
                            sendlo.Y += 7;
                            AutoControl.MouseClick((Point)sendlo);
                            screen.Dispose();
                            break;
                        }
                    }
                    var exitpost = AutoControl.GetGlobalPoint(child, 62, 6);
                    exitpost.Y -= 37;
                    AutoControl.MouseClick(exitpost);
                    Thread.Sleep(2000);
                    fpoint.X += 325;
                }
                Thread.Sleep(1000);
                Point zone = AutoControl.GetGlobalPoint(child, 20, 20);
                autoItX3.MouseMove(zone.X, zone.Y);
                autoItX3.MouseWheel("down", 4);
                Thread.Sleep(3000);
            }
        }
 public static Bitmap Find(string main, string sub, double percent = 0.9)
 {
     ImageScanOpenCV.GetImage(main);
     ImageScanOpenCV.GetImage(sub);
     return(ImageScanOpenCV.Find(main, sub, percent));
 }
Exemple #27
0
        void runChrome()
        {
            if (isRunning)
            {
                for (int i = 1; i <= 9999; i++)
                {
                    if (isRunning)
                    {
                        for (int rows = 0; rows < dataGridView1.Rows.Count; rows++)
                        {
                            if (isRunning)
                            {
                                IPHostEntry ip;
                                while (isRunning)
                                {
                                    var check = false;
                                    dataGridView1.Rows[rows].Cells[1].Value = "Change IP";
                                    runCMD("rasdial viettel");
                                    string myip = "";
                                    ip = Dns.GetHostEntry(Dns.GetHostName());
                                    foreach (IPAddress ipa in ip.AddressList)
                                    {
                                        if (ipa.AddressFamily == AddressFamily.InterNetwork)
                                        {
                                            myip = ipa.ToString();
                                        }
                                    }

                                    if (File.Exists("ListIP.txt"))
                                    {
                                        dataGridView1.Rows[rows].Cells[1].Value = "Check duplicate IP";
                                        string[] listIP = File.ReadAllLines("ListIP.txt");
                                        foreach (var item in listIP)
                                        {
                                            var temp = item.Split(':');
                                            if (myip == temp[0].Trim())
                                            {
                                                check = true;
                                            }
                                        }
                                    }
                                    if (!check)
                                    {
                                        File.AppendAllText("ListIP.txt", myip + " : " + dataGridView1.Rows[rows].Cells[0].Value + "\n");
                                        dataGridView1.Rows[rows].Cells[1].Value = "Open Chrome";
                                        Process.Start(dataGridView1.Rows[rows].Cells[0].Value.ToString());
                                        break;
                                    }
                                    else
                                    {
                                        runCMD("rasdial /disconnect");
                                    }
                                }

                                if (isRunning)
                                {
                                    Thread.Sleep(2500);
                                    var cap = CaptureHelper.CaptureScreen();
                                    cap.Save("res.png");
                                    var sub   = ImageScanOpenCV.GetImage("icon.PNG");
                                    var count = 0;
                                    while (count <= 30)
                                    {
                                        Point?res = ImageScanOpenCV.FindOutPoint((Bitmap)cap, sub);
                                        if (res != null)
                                        {
                                            AutoControl.MouseClick(res.Value.X, res.Value.Y, EMouseKey.LEFT);
                                            Thread.Sleep(time * 1000);
                                            break;
                                        }
                                        count++;
                                    }
                                }
                                runCMD("taskkill /f /im chrome.exe");
                                dataGridView1.Rows[rows].Cells[1].Value = "Disconnect Dcom";
                                runCMD("rasdial /disconnect");
                                if (isRunning)
                                {
                                    dataGridView1.Rows[rows].Cells[1].Value = "Done";
                                }
                                else
                                {
                                    dataGridView1.Rows[rows].Cells[1].Value = "Stop";
                                }
                            }
                            else
                            {
                                dataGridView1.Rows[rows].Cells[1].Value = "Stop";
                            }
                        }
                    }
                }
            }
        }