Получение пиксела с экрана и исключение ArgumentOutOfRangeException - C#
Формулировка задачи:
Здравствуйте, решил сделать бота.
Вот кусок кода, в котором после запуска вылетает исключение ArgumentOutOfRangeException:
Пишет: "Параметр должен быть положительным и меньше ширины. Имя параметра: x" в строке if (screenPicture.GetPixel(i, j) != Color.FromArgb(255, 0, 0, 0))
Весь день сидел писал, так что сейчас голова просто не варит... Отладчик показывает, что i=500, j=131, не пойму в чем проблема
private void Timer_Tick(Object sender, EventArgs e) { screenPicture = null; CountTick+=1; if (CountTick < 40) { screenPicture = new Bitmap(500, 435); using (Graphics g = Graphics.FromImage(screenPicture)) { g.CopyFromScreen(400, 130, 0, 0, screenPicture.Size); } Bitmap after = screenPicture; for (int j = 131; j < 565; j += 3) { for (int i = 401; i < 900; i += 3) { if (screenPicture.GetPixel(i, j) != Color.FromArgb(255, 0, 0, 0)) { Point ptTarget = new Point(i, j); Cursor.Position = ptTarget; MouseClick(); } } } } else this.Close(); }
Решение задачи: «Получение пиксела с экрана и исключение ArgumentOutOfRangeException»
textual
Листинг программы
private void Timer_Tick(Object sender, EventArgs e) { screenPicture = null; CountTick+=1; if (CountTick < 20) { // screenPicture = new Bitmap(500, 435); screenPicture = new Bitmap(900, 565); using (Graphics g = Graphics.FromImage(screenPicture)) { g.CopyFromScreen(400, 130, 0, 0, screenPicture.Size); } Bitmap after = screenPicture; for (int j = 130; j < 565; j += 5) { for (int i = 400; i < 900; i += 5) { if (after.GetPixel(i, j) != Color.FromArgb(255, 0, 0, 0)) { Point ptTarget = new Point(i, j); Cursor.Position = ptTarget; MouseClick(); } } } } else this.Close(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д