Автоматизация действий в Windows

  A A A

5
(9)

📲 Как автоматизировать рутинные действия под Windows ? Этот вопрос часто задают мне в реальной жизни, видя, как мой компьютер сам выполняет действия, будь то в играх, будь то на сайтах или других местах. Если вас интересует данная тема автоматизации в Windows и вы хотите научиться, как автоматически выполнять какие-либо действия в любом приложении под Windows, то вам сюда. Оговорюсь, это не полный гайд, а введение и основы. Поняв эти основы вы уже сможете автоматизировать до 80% всех действий в Windows или приложениях. А для дальнейшего развития навыков есть куча тематических форумов и мануалов, благо, язык Autoit очень легек в освоении.

Как вы уже поняли, сегодня будут основы по Autoit – бесплатный набор средств и язык для автоматизации выполнения задач в Microsoft Windows. Позволяет создавать скрипты автоматизации (иногда называемые макросами), способные имитировать действия пользователя. Я знаю, что некоторые люди скачивают всякие расширения и плагины для браузеров, дабы написать какие-то макросы, чтобы браузер делал действия за них. Зачем, когда есть Autoit ?

Скачивание и установка

Чтобы начать пользоваться и начать писать скрипты на Autoit нужно скачать программу-обработчик, ссылка на страницу скачивания: https://www.autoitscript.com/site/autoit/downloads/

На момент написания этой статьи версия Autoit была v3.3.14.5.

Дальше нам желательно скачать специальный текстовый редактор AutoIt Script, ссылка на скачивание установщика: https://www.autoitscript.com/site/autoit-script-editor/downloads/

Можно конечно пользоваться и NotePad++, он поддерживает синтаксис Autoit, но я предпочитаю оригинальный редактор.

Порядок установки такой:

  1. Скачиваем и устанавливаем сначала autoit-v3-setup.exe;
  2. Затем уже ставим редактор SciTE4AutoIt3.exe.

Если у вас 64-битная Windows, то выбираем “use native x64 tools by default”, а если 32-битная, то оставляем как есть. Если же вы не знаете какая у вас Windows, также оставляем все как есть.

Также во время установки компилятора Autoit будет задан выбор, “run the script” и “edit the script”, обязательно выбираем второй вариант, “edit the script, иначе каждый раз при открытия файла скрипта он будет запускаться, что нам не нужно.

После установки у нас в меню Пуск должен появиться пункт Autoit, заходим в него и выбираем Autoit Windows Info, открываем приложение.

Также после установки у вас в контекстном меню Windows (это то, что появляется по нажатию правой кнопки мыши) появится пункт “Создать -> Autoit V3 Script”. Создаем такой файл, открываем его и попадаем в редактор.

Откройте этот пустой файл в оригинальном редакторе и увидите пару строк по умолчанию, это комментарии, все это можно удалить.

В утилите Autoit Windows Info, которую вы открыли до этого, жмем стрелку вправо до тех пор, пока не появится пункт “Mouse”, который нам и будет нужен. Все остальное это для более серьезных вещей и не рассматривается в данном гайде.

Autoit Windows Info - Основы Autoit 3
Autoit Windows Info.

Основы Autoit

Итак, самое простое, как заставить курсор мыши бегать по экрану, кликать там где нужно, крутить колесиком мыши, щелкать правой кнопкой и тд. и тп. Основы синтаксиса и самые необходимые базовые конструкции я приведу ниже, все остальное найдете сами в интернете:

Sleep(время в миллисекундах), например, Sleep(30000) – останавливает исполнение кода на заданное время. В моем примере это 30.000 миллисекунд, что равно 30 секундам. Всегда ставим какую-нибудь задержку в самое начало кода, чтобы когда вы его запустили, у вас было время на переключение на нужное приложение и т.п.

MouseMove(x, y) – перемещение курсора мыши в заданные координаты Х и Y, измеряется в пикселях. Например,

MouseMove(150, 255) – переместит курсор в точку с координатами 150 пикселей по оси X (отступ слева) и 255 пикселей по оси Y (отступ сверху).

MouseClick(“какая кнопка”, x, y, “сколько раз кликать, число”) – как и впредыдущем случае перемещает курсор мыши в точку с координатами X и Y. Но также эта команда позволяет кликнуть по этим координатам, либо правой клавишей, либо левой, причем кликнуть нужное количество раз. Разберем на примере:

MouseClick(“left”, 150, 255, 2) – команда кликнет 2 раза левой кнопкой мыши по точке с координатами 150 и 255 пикселей. Или:

MouseClick(“right”, 150, 255, 1) – кликнет правой кнопкой мыши 1 раз по точке с координатами 150 и 255.

Резонный вопрос, а как мне понять какие координаты у точки, по которой надо кликнуть ? Для этого, в утилите Autoit Windows Info в разделе “Mouse” перетягиваем иконку курсора (1 на картинке) на нужное место и отпускаем. В поле “Position” (2) внизу увидим значения для X и Y, тогда как поле “Color” показывает цвет пикселя, на который наведен курсор мыши (в HEX формате):

Вкладка Mouse - Основы Autoit 3
Вкладка Mouse.

Важно ! Координаты X и Y отсчитываются конкретно под ваш монитор и ваше разрешение экрана. То есть, написав скрипт у себя дома, на работе он может кликать не туда куда нужно, обязательно нужно писать координаты под конкретное разрешение монитора.

Больше автоматизации, к примеру, как сделать, чтобы курсор гулял по какому-то сайту и периодически кликал по нужным местам, при этом не прописывая кучу строк MouseClick ? Для этого, как и в любом языке, есть понятие цикл. Приведу простые истины и углубляться в виды циклов не буду. Запомните это и пока хватит:

$i = 0

Do (делай)

...набор команд, любой код...

$i = $i + 1

Until (пока) $i = 5

Где $i – это переменная. Переменная пишется через знак доллара и может принимать как числовые, так и текстовые значения. Например, $abc = “техноблоггер” или $z = 25.54.

Do – инициирует начало цикла, а Until – его конец. Все что между ними будет исполняться столько раз, пока переменная $i не станет равной 5. В теле цикла (внутри Do…Until) мы видим запись

$i = $i + 1 – это счетчик, который прибавляет +1 к значению $i после каждой итерации цикла. Важно! Если этого не сделать, мы получим бесконечный цикл, который никогда не завершится и компьютер может зависнуть.

Пример:

$a = 0

Do

MouseClick("left", 150, 255, 1)
Sleep(1000)
MouseClick("left", 155, 269, 1)
Sleep(1500)
MouseClick("left", 120, 251, 1)
Sleep(3000)

$a = $a + 1

Until $a = 4

Этот скрипт будет кликать по одному разу по координатам и ожидать заданное количество времени между кликами. То есть, сначала будт клик по точке 150 – 255 пикселей, затем ждем секунду, далее клик по точке 155 – 269, ждем 1,5 секунды, и наконец клик по 120 – 251 и ждем уже 3 секунды. И эти действия будут повторены 5 раз, от 0 до 4. Можно написать $a = 1 и до $a = 5, в моем случае отсчет был от 0.

В самом начале цикл пробежал один раз и добавил +1 переменной $a, которая теперь стала равна 1: $a = 0 + 1, затем сравнил, выполнилось ли условие, что $a = 4 ? И так до тех пор, пока условие не выполнится и $a не станет равно 4.

Насчет Sleep, как я уже говорил, это просто задержка. Советую всегда ставить Sleep между конструкциями действий, например, перемещения мыши.

И последнее, операции условий (ветвления) или как хотите называйте.

If … Else (если … иначе).

If (в скобках пишутся условия или выражения) Then (тогда)
... набор строк или команд...
Else (иначе)
... набор строк или команд...
Endif (конец ветвления)

Причем, Else – необязательно, можно и без него. Пример:

If ($i = 4) Then

MouseClick("left", 150, 255, 1)

Else

MouseClick("right", 150, 255, 1)

Endif

Понятно, думаю. Если $i равно 4, то кликаем левой кнопкой мыши 1 раз по координатам 150, 255. Иначе (если $i не равно 4) кликаем правой кнопкой мыши 1 раз по координатам 150, 255.

К примеру, в созданиях ботов для игр в качестве условия может выступать цвет пикселя, на который наведен курсор. Как вы помните, в утилите кроме координат еще показывает цвет пикселя в HEX формате.

В моем примере на картинке это 0xF0F4F9 (значение можно скопировать CTRL + C).

А как получить цвет пикселя непосредственно в программе автоматически ? Для этого есть несколько способов, самый простой это конструкция:

PixelGetcolor (x, y) – эта запись присваивает код цвета пикселя по координатам x,y в текстовом формате. Пример:

$x = 27
$y = 445
$i = "0xF0F4F9"

MouseMove($x, $y)

$color = PixelGetColor($x, $y)

if ($i = $color) Then

MouseClick("left", 150, 255, 1)

Endif

Разберем. В переменных $x и $y лежат координаты соответственно для X и Y, куда будем перемещаться. Переменной $color присвоим значение, которое отдаст PixelGetColor. Дальше условие, если переменная $i = переменной $color, то кликаем левой кнопкой мышки 1 раз по нужным координатам.

Ну и напоследок, одной из кучи возможности Autoit является набор текста, вы можете послать в нужное место нужные набор символов.

Send(“текст”) – отправляет слово “текст” в то место, где на данный момент находится курсор мыши.

Send(“{DOWN}”) – нажмет клавишу “Стелка Вниз” на клавиатуре. Полный список набора клавиш можете найти в интернете.

Ну про колесико мыши упомяну:

MouseWheel(“куда крутить”, “сколько крутить”) – крутит колесико мыши вверх или вниз нужное количество раз. Например,

MouseWheel(“up”, 10) или MouseWheel(“down”, 15) – прокрутит колесико (скролл) мыши 10 раз вверх или 15 раз вниз.

Запуск скрипта

Ну хорошо, мы все написали, сохранили и хотим проверить. Как запустить скрипт Autoit на исполнение? Есть два способа:

  • В редакторе нажимаем Tools -> Go (запуск), Tools -> Stop Executing (остановка);
  • В редакторе жмем F5 (запуск) и CTRL + Break (остановка).

Если вы не расставите нужные задержки через Sleep, то не успеете остановить скрипт. Кстати, в редактор встроен отладчик, который подсветит красным неверный синтаксис и не даст запуститься скрипту, если в нем есть ошибки.

Писать можно долго, возможностей у языка очень много, это были просто основы для понимания. Если есть вопросы задавайте в комментариях. И не забывайте ставить Sleep.

Насколько полезна статья?

Нажмите на иконку, чтобы оценить:

Средний рейтинг: 5 / 5. Кол-во голосов: 9

Никто еще не оценил. Вы можете стать первым!

Так как вы считаете статью интересной...

Поделитесь пожалуйста:

Я сожалею, что статья вам не понравилась...

Позвольте мне улучшить статью.

Скажите, как я могу улучшить статью?

От автора

Techno
Профиль автора в VKontakte

Спасибо, что дочитали статью до конца. Можете оставить свой комментарий ниже, регистрация не требуется.

Оставить комментарий

avatar
  Подписаться  
Уведомление о