示例#1
0
文件: Screen.cs 项目: grosbok/L2RBot
        /// <summary>
        /// takes a process object and returns its the game screens x, y, width and height
        /// </summary>
        /// <param name="proc"></param>
        /// <returns></returns>
        public static Rectangle GetRect(Process proc)
        {
            var rect = new User32.Rect();//Rekt type object for parameter of WINAPI

            User32.GetWindowRect(proc.MainWindowHandle, ref rect);

            int width  = rect.right - rect.left;
            int height = rect.bottom - rect.top;

            Rectangle rectangle = new Rectangle(rect.left, rect.top, width, height);

            if (rectangle.Width != (1280 + rightBorder + leftBorder) | rectangle.Height != (720 + topBoarder + bottomBorder))
            {
                MainWindow.main.UpdateLog = proc.MainWindowTitle + " needs reset to 1280x720 or Nox player left and top borders have changed. " +
                                            "Window should be detected as " + (1280 + borderWidth) + "x" + (720 + borderHeight) +
                                            "your screen is " + rectangle.Width + "x" + rectangle.Height;
            }
            return(rectangle);
        }
示例#2
0
        //Logic
        /// <summary>
        /// takes a process object and returns its the game screens x, y, width and height
        /// </summary>
        /// <param name="App"></param>
        /// <returns></returns>
        public Rectangle GetRect(Process App)
        {
            if (Emu == Emulator.None)
            {
                BuildBorders();
            }

            var RECT = new User32.Rect();

            User32.GetWindowRect(App.MainWindowHandle, ref RECT);

            int width = RECT.Right - RECT.Left;

            int height = RECT.Bottom - RECT.Top;

            Rectangle Screen = new Rectangle(RECT.Left, RECT.Top, width, height);

            CheckScreenSize(App);

            return(Screen);
        }
示例#3
0
        private void CheckScreenSize(Process App)
        {
            var RECT = new User32.Rect();

            User32.GetWindowRect(App.MainWindowHandle, ref RECT);

            int width = RECT.Right - RECT.Left;

            int height = RECT.Bottom - RECT.Top;

            Rectangle Screen = new Rectangle(RECT.Left, RECT.Top, width, height);

            if (TopBorder + BottomBorder + LeftBorder + RightBorder != 0)//checks to see if boarders have been assigned values before spamming error.
            {
                if (Screen.Width != (1280 + RightBorder + LeftBorder) | Screen.Height != (720 + TopBorder + BottomBorder))
                {
                    MainWindow.main.UpdateLog = App.MainWindowTitle + " Incorrect game screen size detected. The visible game screen needs to be 1280x720, excluding any borders. Window detected at:" +
                                                width + "x" + height + ". It needs to be " + (1280 + RightBorder + LeftBorder) + "x" + (720 + TopBorder + BottomBorder) +
                                                ".";
                }
            }
        }