Основной раздел > Общие вопросы

Типовые алгоритмы, вводные статьи (Новички, читайте!)

(1/43) > >>

Johnny:
В данной теме предлагается размещать примеры простейших алгоритмов для конкретных задач. Тема призвана облегчить освоение программы новичками

Содержание:
- Поиск пикселя определенного цвета и щелчок по нему мышью
- Запуск блокнота и запись в нем произвольного текста
- WinAPI, работа с окнами через PostMessage
- Привязка к окну (+ красивое рисование в Paint)
- Написание подпрограммы для вычисления даты
- Выполнение действия в разные промежутки времени
- Пример использования функций работы с txt файлами
- Сортировка массива
- Распознавание чисел  Распознавание текста
- Развернуть окно на весь экран
- Простое создание снимков c цветокоррекцией COLORMODE
- Ближайшая к заданным координатам/центру картинка/пиксель
- /New/ ШИКАРНЫЙ симулятор человеческого движения мыши 'WindMouse'


Johnny:
Поиск пикселя определенного цвета и щелчок по нему мышью

Использованные инструкции (ознакомьтесь с ними в справке по языку):

* getscreen
* if_pixel_in .. end_if
* print
* lclick
* else
* halt
Приведенный ниже код ищет на экране пиксель красного цвета, начиная с левого верхнего угла. Как только пиксель будет найден, поиск окончится. В данном примере обрабатываются как успешный поиск, так и неуспешный.


--- Code: (clickermann) ---// помещение текущего снимка экрана в буфер программы
// это необходимо для работы всех графических функций и процедур
getscreen

// --- конструкция поиска пикселя в буфере экрана ---
// координаты 0, 0, $_xmax, $_ymax описывают прямоугольную область, в которой будет осуществлен поиск. при этом $_xmax и $_ymax содержат максимально возможные значения для текущего разрешения экрана. 255 это код цвета, он соответствует красному. код цвета можно узнать в редакторе, наведя курсор на нужного цвета пиксель
// сама инструкция поиска if_pixel_in по сути представляет собой условие, то есть выполнение кода, который описан внутри условия, зависит от результата проверки самого условия (если пиксель найден) с учетом всех вышеописанных параметров.
if_pixel_in(0, 0, $_xmax, $_ymax, 255)
   
   // если пиксель заданного цвета найден, его координаты будут помещены в системные переменные $_return1 и $_return2. можно их распечатать в лог ...
   print("Цвет обнаружен в координатах: ", $_return1, ,":", $_return2)
   
   // ... а можно сразу кликнуть по нему левой кнопкой мыши
   lclick($_return1, $_return2)

else   // блок else (вместе с кодом) не обязателен, но он обеспечивает обработку ситуации, когда условие вернуло отрицательный результат
   
   // если ничего не найдено, выводим сообщение
   print("ничего не найдено")

end_if   // конец условия

halt   // остановка скрипта, обеспечивает однократное выполнение


--- End code ---

Сергей:
Запуск блокнота и запись в нем произвольного текста.

Данный скрипт запускает блокнот и 5 раз записывает в него строку "The quick brown fox jumps over the lazy dog."

--- Code: (javascript) ---#name "Запись в блокнот"//Имя нашего скрипта

EXECUTE("notepad.exe")//Запускаем программу notepad.exe. Команда EXECUTE равносильна окну "Выполнить" в Виндовс (Win+R).
WNDSTATE(WNDFIND("Блокнот"), 1)//Разворачиваем окно в заголовке которого есть строка "Блокнот". 1 - означает развернуть, 0 - свернуть.   
WAITMS(500)//Ждем чтобы блокнот окончательно запустился. 500 мс достаточно

FOR($i, $i < 5)//Начало цикла. Цифра 5 означает что цикл повторится 5 раз
   KEYSTRING("The quick brown fox jumps over the lazy dog.", 20)//Вводим текст. 20 означает задержку в 20 мс между вводом каждой буквы
   KEYPRESS(#ENTER)//Нажимаем Enter чтобы перевести строку. #ENTER - код клавиши Enter
END_CYC//Заканчиваем цикл

HALT//Останавливаем скрипт
--- End code ---

Коды всех клавиш можно посмотреть в help.chm, в разделе "Коды клавиш".
Обратите внимание, что у вас должна быть включена английская раскладка в окне кликермана и в окне блокнота.

Используемые команды:

* EXECUTE - Выполнение программ
* WNDSTATE - Сворачивание/разворачивание окна
* WNDFIND - Нахождение окна по заголовку
* WAITMS - Остановка скрипта на заданное кол-во миллисекунд
* FOR - Цикл
* KEYSTRING - Печать текста
* KEYPRESS - Нажатие клавиш
* HALT - Остановка программы

Oraven:

--- Quote from: Сергей on October 26, 2012, 04:53:11 PM ---Данный скрипт запускает блокнот и 5 раз записывает в него строку "The quick brown fox jumps over the lazy dog."
--- End quote ---

Заметь, что должна быть включена английская раскладка.

ЦИТРИН:

--- Quote from: Oraven on October 26, 2012, 05:30:14 PM ---Заметь, что должна быть включена английская раскладка.

--- End quote ---
Нельзя ли   процедуру  переключения раскладки  поручить  самой программе, или хотя бы дать понять пользователю , что  у него раскладка не та? 
Это я к чему?
Попробовал  воспользоваться примером .
НО!
 В моей ноуте никакие команды ( в языковой панели)  по изменению раскладки  так и не смогли "убедить" стандартный блокнот писать по английски. Хотя вручную все делаю  исправно.
  Если переключено на русский то  получаю пустой лист с  5 точками
 Если переключаю на англ , то печатается текст, но русскими буквами.

Navigation

[0] Message Index

[#] Next page

Go to full version