AutoHotkey – це вражаюча, хоча й не завжди проста у використанні програма. Її першочерговим завданням було перепризначення клавіш швидкого доступу для різних операцій, але з часом вона перетворилася на повноцінний інструмент для автоматизації дій у Windows.
Хоча AHK може здатися складним для новачків через свою багатофункціональність, основна концепція є досить зрозумілою. Однак, це повноцінна мова програмування, що базується на принципах Тюрінга. Якщо у вас є досвід програмування або ви знайомі з її базовими поняттями, ви швидше розберетеся з її синтаксисом.
Інсталяція та застосування AutoHotkey
Процес інсталяції AutoHotkey є досить легким. Завантажте інсталяційний файл з офіційного сайту та запустіть його. Оберіть «Експрес-установку». Після завершення встановлення, ви зможете, клацнувши правою кнопкою миші в будь-якому місці, обрати «Створити» > «Сценарій AutoHotkey», щоб створити новий скрипт.
Скрипти AHK – це текстові документи з розширенням .ahk. Клікнувши на них правою кнопкою миші, ви побачите декілька опцій:
«Запустити скрипт» активує ваш скрипт, використовуючи середовище виконання AHK.
«Компілювати скрипт» поєднає його з виконуваним файлом AHK, створюючи EXE-файл, готовий до запуску.
«Редагувати скрипт» відкриє його у текстовому редакторі за замовчуванням. Для написання скриптів AHK можна використовувати Блокнот, але ми рекомендуємо SciTE4AutoHotkey, спеціалізований редактор для AHK, який підтримує підсвічування синтаксису та налагодження.
Під час роботи скрипту – незалежно від того, є він EXE-файлом чи ні – ви знайдете його в області сповіщень Windows, де він працюватиме у фоновому режимі. Знайдіть зелену іконку з літерою «H».
Щоб завершити роботу скрипту, призупинити, перезавантажити або редагувати його, клікніть правою кнопкою миші на іконці сповіщення та оберіть відповідну дію. Скрипти продовжать працювати у фоновому режимі до того моменту, поки ви їх не закриєте. Звісно, вони також завершать роботу після виходу з Windows або перезавантаження комп’ютера.
Принцип роботи AutoHotkey
По суті, AHK виконує одну основну функцію – призначає дії клавішам швидкого доступу. Існує безліч різних дій, комбінацій гарячих клавіш і структур управління, але всі скрипти базуються на цьому головному принципі. Ось приклад простого скрипту AHK, який запускає Google Chrome при натисканні комбінації клавіш Windows+C:
#c:: Run Chrome return
Перший рядок визначає клавішу швидкого доступу. Знак решітки (#) є скороченням клавіші Windows, а “c” – це клавіша “C” на клавіатурі. Далі йде подвійне двокрапка (::), що означає початок блоку дій.
Наступний рядок – це дія. У даному випадку дія запускає програму за допомогою команди Run. Блок закінчується командою return в кінці. Перед return можна розмістити будь-яку кількість дій, які будуть виконуватися послідовно.
Таким чином, ви визначили просте співвідношення між клавішами та діями. Ви можете розмістити стільки таких співвідношень, скільки вам потрібно, у файл .ahk і налаштувати його на роботу у фоновому режимі, постійно перевіряючи клавіші швидкого доступу для їх перепризначення.
Клавіші швидкого доступу та модифікатори
Повний перелік модифікаторів AHK можна знайти в офіційній документації, але ми розглянемо найбільш корисні та цікаві можливості.
Усі клавіші-модифікатори мають односимвольні скорочення. Наприклад, #, !, ^, + відповідають клавішам Windows, Alt, Control та Shift відповідно. Ви також можете розрізняти ліві та праві клавіші Alt, Control та Shift за допомогою додаткових модифікаторів, що надає багато можливостей для створення додаткових клавіш швидкого доступу. Наприклад, <+ – це лівий Shift, а >+ – правий Shift. Перегляньте список клавіш, щоб побачити всі можливі варіанти. (Спойлер: ви можете посилатися майже на кожну клавішу. Ви навіть можете посилатися на інші пристрої введення за допомогою невеликого розширення).
Ви можете об’єднати будь-яку кількість клавіш в одну комбінацію швидкого доступу, але незабаром у вас може закінчитися кількість комбінацій, які ви зможете запам’ятати. Саме тут на допомогу приходять модифікатори, які дозволяють створювати більш складні комбінації. Розглянемо приклад з документації AHK:
Зелена частина, #IfWinActive, називається директивою і додає додатковий контекст до клавіш швидкого доступу, що розміщені під нею в скрипті. Будь-яка клавіша швидкого доступу після цієї директиви буде активована лише за умови, що умова виконана. Ви можете згрупувати декілька клавіш швидкого доступу під одну директиву. Ця директива буде діяти до того моменту, поки ви не використаєте іншу директиву, або скинете її, використовуючи пустий #If. (Якщо це здається вам хаком, то ласкаво просимо до AHK).
Директива перевіряє, чи відкрито конкретне вікно, визначене класом ahk_class блокноту. Коли AHK отримує сигнал «Win+C», він запускає дію під першим #IfWinActive, лише якщо ця умова є істинною, а якщо ні – то перевіряє другу. В AHK є багато директив, і ви можете знайти їх усі в документації.
В AutoHotkey також існують гарячі рядки, які працюють як клавіші швидкого доступу, за винятком того, що вони замінюють цілий рядок тексту. Це подібно до того, як працює автовиправлення. Насправді існує скрипт автовиправлення для AHK, який підтримує будь-яку дію AHK.
Гарячий рядок буде спрацьовувати тільки в тому випадку, якщо його ввести точно. Він також автоматично видалить відповідний текст, щоб замінити гарячий рядок, хоча цю поведінку можна змінити.
Дії
Дії в AHK – це все, що має зовнішній вплив на операційну систему. AHK має безліч різних дій. Ми не можемо розглянути їх усі, тому звернемо увагу на декілька корисних.
Надсилання введення, будь то текст або натискання різних клавіш.
Переміщення миші. Насправді, AHK іноді помилково вважають програмою для читерства у відеоіграх, оскільки люди створювали з його допомогою цілком функціональні aimbot.
Клацання мишкою, з розташуванням відносно поточного вікна.
Відображення діалогових меню, разом із формами та полями введення.
Переміщення вікон, зміна розміру, відкриття та закриття.
Відтворення музики.
Запис до реєстру Windows. Так, це правда.
Зміна вмісту буфера обміну.
Читання та запис файлів. Ви можете перебирати файли та виконувати дії у кожному рядку. AHK може навіть записувати у файли .ahk та змінювати власний код.
Більшість цих дій також мають пов’язані з ними команди, орієнтовані на інформацію. Наприклад, ви можете записувати в буфер обміну, але ви також можете отримати вміст буфера обміну, зберегти його у змінній та запускати функції, коли буфер обміну змінюється.
Поєднуємо все це за допомогою структур управління
AHK не був би таким потужним, якби не структури управління, які роблять його повним за Тюрінгом.
Крім директив #If, у вас також є доступ до умовних операторів If всередині блоків дій. AHK має цикли For, блоки в фігурних дужках, Try і Catch та багато інших. Ви можете отримувати доступ до зовнішніх даних з блоку дій та зберігати їх у змінних або об’єктах для подальшого використання. Ви можете визначати користувацькі функції та мітки. Фактично, все, що ви легко можете зробити в іншій мові програмування, ви, ймовірно, зможете зробити в AHK, хоча можливо з невеликим головним болем і необхідністю звертатися до документації.
Наприклад, уявіть, що у вас є монотонне завдання, яке вимагає від вас натискати кілька кнопок поспіль та чекати на відповідь сервера, перш ніж повторити це знову. Ви можете використати AHK для автоматизації цього процесу. Вам потрібно визначити кілька циклів, щоб перемістити мишу в певні місця, клацнути, потім перейти до наступного місця та знову клацнути. Додайте кілька операторів очікування, щоб скрипт не зависав. Ви можете навіть спробувати зчитувати колір пікселів на екрані, щоб визначити, що відбувається.
Одне можна сказати напевно: ваш скрипт, ймовірно, не буде ідеальним. Але AutoHotkey також не є ідеальним, і це нормально.