Получение пиксела с экрана и исключение 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д