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

  A A A

5
(5)

📲 Как автоматизировать рутинные действия под 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. Кол-во голосов: 5

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

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

От автора

Techno

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

Напишите первый комментарий на "Автоматизация действий в Windows"

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

Ваш email нигде не публикуется.


*

Предложения или сотрудничество - связь через ВК или обратную связь. Подобные комментарии удаляются !


Подбор смартфона: