.NET 4.x Не зацикливайся пожалуйста - C#
Формулировка задачи:
Написал такой класс
Запрашиваю его из
Нужен именно бесконечный цикл чтобы он не зацикливался.
Я думаю как то в классе сделать приоритет выполнения, чтобы при вызове функции он ждал получение результата и только после этого повторял.
Знания в C# минимальные 3 дня назад начал изучать. Прошу помощи
Чтобы зарегистрировать AutoItX нужно вызвать cmd и прописать
using AutoItX3Lib; namespace Programm { class PixelGetColor { AutoItX3 au3 = new AutoItX3(); public int positioncolor(int x, int y, int pixel_need) { var pixel = au3.PixelGetColor(x, y); // Получаем пиксель на заданных координатах if (pixel == pixel_need) // Сверяем полученный пиксель с заданным { return 1; // Все хорошо пиксели совпадают } else { return 0; // Найденный пиксель не устраивает по условию или ошибка } } } }
private void тестToolStripMenuItem_Click(object sender, EventArgs e) { AutoItX3 au3 = new AutoItX3(); int y = au3.WinGetPosY("Программа C#"); // Координаты окна int x = au3.WinGetPosX("Программа C#"); // Координаты окна int t = au3.WinGetClientSizeHeight("Программа C#"); // Ширина окна int b = au3.WinGetClientSizeWidth("Программа C#"); // Длина окна this.toolStripStatusLabel2.Text = ("Ищу"); PixelGetColor pixelcolor = new PixelGetColor(); while(true) { int need_udar = pixelcolor.positioncolor(x + 415, y + 307, 15789729); // Вызываем класс if (need_udar == 1) { this.toolStripStatusLabel2.Text = ("Нашел"); au3.MouseClick("LEFT", x + 447, y + 317, 1, 0); // Кликаем в окно } else if ( need_udar == 0) { this.toolStripStatusLabel2.Text = ("Не нашел"); } } }
regsvr32.exe AutoItX3.dll
(должно находится в папке)Решение задачи: «.NET 4.x Не зацикливайся пожалуйста»
textual
Листинг программы
private void search() { while(true) { AutoItX3 au3 = new AutoItX3(); int y = au3.WinGetPosY("Прогрмма C#"); int x = au3.WinGetPosX("Прогрмма C#"); int t = au3.WinGetClientSizeHeight("Прогрмма C#"); int b = au3.WinGetClientSizeWidth("Прогрмма C#"); this.toolStripStatusLabel2.Text = ("Ищу"); PixelGetColor pixelcolor = new PixelGetColor(); int need_udar = pixelcolor.positioncolor(x + 415, y + 307, 15789729); if (need_udar == 1) { this.toolStripStatusLabel2.Text = ("Нашел"); au3.MouseClick("LEFT", x + 447, y + 317, 1, 0); break; } else if (need_udar == 0) { this.toolStripStatusLabel2.Text = ("Не нашел"); } } } private void тестToolStripMenuItem_Click(object sender, EventArgs e) { Thread potok1 = new Thread(search); potok1.Start(); // прочие функции основного потока }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д