Autoit minimize all windows

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

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

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

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

Читайте также:  Популярность рабочих столов linux

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.

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

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

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

Until (пока) $i = 5

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

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

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

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

Этот скрипт будет кликать по одному разу по координатам и ожидать заданное количество времени между кликами. То есть, сначала будт клик по точке 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 между конструкциями действий, например, перемещения мыши.

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

Читайте также:  Linux ограничение скорости сети

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

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

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

MouseClick(«left», 150, 255, 1)

MouseClick(«right», 150, 255, 1)

Понятно, думаю. Если $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»

$color = PixelGetColor($x, $y)

if ($i = $color) Then

MouseClick(«left», 150, 255, 1)

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

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

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

Send(«») — нажмет клавишу «Стелка Вниз» на клавиатуре. Полный список набора клавиш можете найти в интернете.

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

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

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

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

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

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

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

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

AutoIt Scripting Language

Overview

AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying “runtimes” required!

AutoIt was initially designed for PC “roll out” situations to reliably automate and configure thousands of PCs. Over time it has become a powerful language that supports complex expressions, user functions, loops and everything else that veteran scripters would expect.

  • Easy to learn BASIC-like syntax
  • Simulate keystrokes and mouse movements
  • Manipulate windows and processes
  • Interact with all standard windows controls
  • Scripts can be compiled into standalone executables
  • Create Graphical User Interfaces (GUIs)
  • COM support
  • Regular expressions
  • Directly call external DLL and Windows API functions
  • Scriptable RunAs functions
  • Detailed helpfile and large community-based support forums
  • Compatible with Windows XP / 2003 / Vista / 2008 / Windows 7 / 2008 R2 / Windows 8 / 2012 R2 / Windows 10
  • Unicode and x64 support
  • Digitally signed for peace of mind
  • Works with Windows Vista’s User Account Control (UAC)
Читайте также:  Как переназначить звуковые выходы windows 10

AutoIt has been designed to be as small as possible and stand-alone with no external .dll files or registry entries required making it safe to use on Servers. Scripts can be compiled into stand-alone executables with Aut2Exe.

Also supplied is a combined COM and DLL version of AutoIt called AutoItX that allows you to add the unique features of AutoIt to your own favourite scripting or programming languages!

Best of all, AutoIt continues to be FREE – but if you want to support the time, money and effort spent on the project and web hosting then you may donate.

Download

Take me to the downloads page!

Features

Here are some of the unique features of AutoIt.

Basic-like Syntax and Rich Function Set

AutoIt has a BASIC-like syntax which means that most people who have ever written a script or used a high-level language should be able to pick it up easily.

Although it started life as a simple automation tool, AutoIt now has functions and features that allow it to be used as a general purpose scripting language (with awesome automation as well of course!). Language features include:

  • The usual high-level elements for functions, loops and expression parsing
  • A staggering amount of string handling functions and a Perl compatible regular expression engine (using the PCRE library).
  • COM support
  • Call Win32 and third-party DLL APIs

Built-in Editor with Syntax Highlighting

AutoIt comes with a customised “lite” version of SciTe that makes editing scripts easy. Users can also download a complete version of SciTe that includes additional tools to make things even easier.

Standalone and Small

AutoIt is a very small and standalone application with no reliance on massive runtimes like .NET or VB. All you need to run AutoIt scripts are the main AutoIt executable (AutoIt3.exe) and the script. Scripts can also be encoded into standalone executables with the built-in script compiler Aut2Exe.

International and 64-bit Support

AutoIt is fully Unicode aware and also includes x64 versions of all the main components! How many other free scripting languages can you say that about?

Key and Mouse Simulation

Much time has been spent optimizing the keystroke and mouse simulation functions to be as accurate as possible on all versions of Windows. All the mouse and keyboard routines are highly configurable both in terms of simulation “speed” and functionality.

Window and Control Management

You can expect to move, hide, show, resize, activate, close and pretty much do what you want with windows. Windows can be referenced by title, text on the window, size, position, class and even internal Win32 API handles.

Directly get information on and interact with edit boxes, check boxes, list boxes, combos, buttons, status bars without the risk of keystrokes getting lost. Even work with controls in windows that aren’t active!

Graphical User Interfaces (GUIs)

AutoIt v3 will also allow you to create some complex GUIs – just like those below!

And much, much more.

You’ll probably want to go to the downloads page right now…

Оцените статью