Як написати сценарій AutoHotkey

Categories:

AutoHotkey є фантастичним, але складним програмним забезпеченням. Спочатку він мав на меті переприв’язувати спеціальні гарячі клавіші до різних дій, але тепер це повний набір для автоматизації Windows.

AHK не є особливо складним для вивчення новим користувачам, оскільки загальна концепція досить проста, але це повна мова програмування за Тьюрингом. Якщо у вас є досвід програмування або знайомі з поняттями, вам буде набагато легше зрозуміти синтаксис.

Встановлення та використання AutoHotkey

Процес встановлення AutoHotkey простий. Завантажте файл установник з офіційного сайту та запустіть його. Виберіть «Швидка установка». Після встановлення програмного забезпечення ви можете клацнути правою кнопкою миші в будь-якому місці та вибрати «Створити» > «Сценарій AutoHotkey», щоб створити новий сценарій.

Скрипти AHK – це текстові файли з розширенням .ahk. Якщо ви клацнете їх правою кнопкою миші, ви отримаєте кілька варіантів:

«Виконати сценарій» завантажить ваш сценарій із середовищем виконання AHK.
“Compile Script” об’єднає його з виконуваним файлом AHK, щоб створити файл EXE, який можна запустити.
«Редагувати сценарій» відкриє ваш сценарій у текстовому редакторі за замовчуванням. Ви можете використовувати Блокнот для написання скриптів AHK, але ми рекомендуємо використовувати SciTE4AutoHotkey, редактор для AHK, який підтримує підсвічування синтаксису та налагодження.

Під час виконання сценарію — незалежно від того, є він EXE чи ні — ви знайдете його у фоновому режимі в області сповіщень Windows, також відомій як системний трей. Знайдіть зелений значок із буквою «H».

Щоб вийти, призупинити, перезавантажити або відредагувати сценарій, клацніть правою кнопкою миші піктограму сповіщення та виберіть відповідний параметр. Скрипти продовжуватимуть працювати у фоновому режимі, доки ви не вийдете з них. Звичайно, вони також зникнуть, коли ви вийдете з Windows або перезавантажите ПК.

  Як змінити мову для Chrome Translate

Як працює AutoHotkey?

По суті, AHK робить одну річ — прив’язує дії до гарячих клавіш. Існує багато різних дій, комбінацій гарячих клавіш і структур керування, але всі скрипти працюватимуть за одним принципом. Ось основний скрипт AHK, який запускає Google Chrome щоразу, коли ви натискаєте Windows+C:

#c::
Run Chrome
return

Перший рядок визначає гарячу клавішу. Знак фунта (#) скорочує клавішу Windows, а c — клавішу C на клавіатурі. Після цього є подвійна двокрапка (::) для позначення початку блоку дії.

Наступний рядок — дія. У цьому випадку дія запускає програму за допомогою команди Виконати. Блок закінчується поверненням в кінці. Перед поверненням можна виконати будь-яку кількість дій. Усі вони будуть стріляти послідовно.

Так само, ви визначили просте відображення ключів до дії. Ви можете розмістити стільки з них, скільки забажаєте, у файл .ahk і налаштувати його на роботу у фоновому режимі, завжди шукаючи гарячі клавіші для перепризначення.

Гарячі клавіші та модифікатори

Ви можете знайти повний список модифікаторів AHK в офіційній документації, але ми зосередимося на найбільш корисних (і крутих) функціях.

Усі клавіші-модифікатори мають односимвольні скорочення. Наприклад, # ! ^ + — це Windows, Alt, Control і Shift відповідно. Ви також можете розрізняти лівий і правий Alt, Control і Shift за допомогою модифікаторів, що відкриває багато місця для додаткових гарячих клавіш. Наприклад, + – це правий Shift. Подивіться на список ключів за все, на що можна посилатися. (Спойлер: ви можете посилатися майже на кожну клавішу. Ви навіть можете посилатися на інші пристрої введення без клавіатури за допомогою невелике розширення).

Ви можете об’єднати скільки завгодно клавіш в одну гарячу клавішу, але незабаром у вас закінчаться комбінації клавіш, які потрібно запам’ятати. Ось тут на допомогу приходять модифікатори, які дозволяють робити більш божевільні речі. Давайте розберемо приклад з документів AHK:

Зелений #IfWinActive називається директивою і застосовує додатковий контекст до гарячих клавіш фізично під ним у сценарії. Будь-яка гаряча клавіша після неї запускатиметься, лише якщо умова виконується, і ви можете згрупувати декілька гарячих клавіш під одну директиву. Ця директива не зміниться, доки ви не натиснете іншу директиву, але ви можете скинути її за допомогою пустого #If (і якщо це здається хаком, ласкаво просимо до AHK).

  Як вимкнути часто відвідувану початкову сторінку Safari на iPhone, iPad і Mac

Директива тут перевіряє, чи відкрито конкретне вікно, визначене блокнотом ahk_class. Коли AHK отримує вхід «Win+C», він запускає дію під першим #IfWinActive, тільки якщо директива повернула true, а потім перевіряє другу, якщо це не так. AHK має багато директив, і ви можете знайти їх усі документи.

AutoHotkey також має гарячі струни, які працюють як гарячі клавіші, за винятком заміни цілого рядка тексту. Це схоже на те, як працює автовиправлення — насправді є скрипт автовиправлення для AHK—але підтримує будь-яку дію AHK.

Гарячий рядок буде відповідати рядку, лише якщо він точно введений. Він також автоматично видалить відповідний текст, щоб замінити гарячий рядок, хоча цю поведінку можна змінити.

Дії

Дія в AHK – це все, що має зовнішній вплив на операційну систему. AHK має багато дій. Ми не можемо пояснити всі з них, тому виділимо кілька корисних.

Надсилання введення, будь то текст або натискання різних кнопок.
Переміщення миші. Насправді, AHK іноді помилково позначають як програмне забезпечення для читрів для відеоігор, оскільки люди створили з ним повністю функціонуючі aimbot.
Клацання мишкою, із розташуванням відносно поточного вікна.
Відображення діалогових меню, в комплекті з формами та полями введення.
Переміщення вікон, регулювання розміру, а також відкриття та закриття.
Відтворення музики.
Запис до реєстру Windows. Так, насправді.
Змінення вмісту буфера обміну.
Читання та запис файлів. Ви можете перебирати файли і виконувати дії в кожному рядку. AHK може навіть писати у файли .ahk і налаштовувати власний код.

Більшість із цих дій також мають пов’язані з ними команди, орієнтовані на інформацію. Наприклад, ви можете писати в буфер обміну, але ви також можете отримати вміст буфера обміну для зберігання у змінній і запускати функції, коли буфер обміну змінюється.

  Дізнайтеся значення будь-якого слова в субтитрах, натиснувши на нього

Пов’язуємо все це за допомогою структур управління

AHK не був би таким, яким він є, без усіх структур управління, які його створюють Тьюринг-повна.

Окрім директив #If, у вас також є доступ до Якщо всередині блоків дій. AHK має Для петлі, фігурна дужка блоки, Спробуйте і Catch, і багато інших. Ви можете отримати доступ до зовнішніх даних з блоку дій і зберегти їх змінні або об’єкти використовувати пізніше. Ви можете визначити користувацькі функції і етикетки. Справді, все, що ви можете легко зробити на іншій мові програмування, ви, ймовірно, можете зробити в AHK з невеликим головним болем і переглядом документів.

Наприклад, уявіть, що у вас є нудне, повторюване завдання, яке вимагає від вас натискати кілька кнопок поспіль і чекати, поки сервер відповість, перш ніж виконувати це знову до нескінченності. Ви можете використовувати AHK, щоб автоматизувати це. Ви б хотіли визначити кілька циклів, щоб перемістити мишу в певні місця, клацніть, а потім перейдіть до наступного місця та клацніть знову. Додайте кілька операторів очікування, щоб він не зламався. Можна навіть спробувати прочитати колір пікселів на екрані щоб визначити, що відбувається.

Одне можна сказати напевно — ваш сценарій, ймовірно, не буде гарним. Але також не AutoHotkey, і це нормально.