Как да напишете скрипт за AutoHotkey

AutoHotkey е фантастичен, но сложен софтуер. Първоначално беше предназначен за повторно свързване на персонализирани бързи клавиши към различни действия, но сега е пълен пакет за автоматизация на Windows.

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

Инсталиране и използване на AutoHotkey

Процесът на инсталиране на AutoHotkey е лесен. Изтеглете инсталатор от официалния уебсайт и го стартирайте. Изберете „Експресна инсталация“. След като инсталирате софтуера, можете да щракнете с десния бутон навсякъде и да изберете Нов > AutoHotkey Script, за да създадете нов скрипт.

AHK скриптовете са текстови файлове с разширение .ahk. Ако щракнете с десния бутон върху тях, ще получите няколко опции:

“Run Script” ще зареди вашия скрипт с времето за изпълнение AHK.
„Compile Script“ ще го обедини с изпълним файл AHK, за да създаде EXE файл, който можете да стартирате.
„Редактиране на скрипт“ ще отвори вашия скрипт във вашия текстов редактор по подразбиране. Можете да използвате Notepad за писане на AHK скриптове, но ние препоръчваме да използвате SciTE4AutoHotkey, редактор за AHK, който поддържа подчертаване на синтаксис и отстраняване на грешки.

Докато се изпълнява скрипт — независимо дали е EXE или не — ще го намерите на заден план в областта за уведомяване на Windows, известна още като системната област. Потърсете зелената икона с „H“ върху нея.

За да излезете, поставите на пауза, презаредите или редактирате скрипт, щракнете с десния бутон върху иконата за уведомяване и изберете подходяща опция. Скриптовете ще продължат да се изпълняват във фонов режим, докато не ги излезете. Те също така ще изчезнат, когато излезете от Windows или рестартирате компютъра, разбира се.

  Събирайте монети, докато маневрирате с кораба си около клонинги [Game Review]

Как работи AutoHotkey?

В основата си AHK прави едно нещо – свързва действия с клавишни комбинации. Има много различни действия, комбинации от бързи клавиши и структури за управление, но всички скриптове ще работят на същия принцип. Ето основен AHK скрипт, който стартира Google Chrome всеки път, когато натиснете Windows+C:

#c::
Run Chrome
return

Първият ред дефинира бърз клавиш. Знакът на лирата (#) е съкращение за клавиша на Windows, а c е клавишът C на клавиатурата. След това има двойно двоеточие (::), което означава началото на блок за действие.

Следващият ред е действие. В този случай действието стартира приложение с командата Run. Блокът завършва с връщане в края. Можете да извършите произволен брой действия преди връщането. Всички те ще стрелят последователно.

Точно така, вие сте дефинирали просто картографиране на ключ към действие. Можете да поставите толкова много от тях, колкото искате, в .ahk файл и да го настроите да работи във фонов режим, като винаги търсите клавишни комбинации за пренасочване.

Бързи клавиши и модификатори

Можете да намерите пълен списък с модификатори на AHK в официалната документация, но ще се съсредоточим върху най-полезните (и готини) функции.

Всички клавиши-модификатори имат едносимволни съкращения. Например, # ! ^ + са съответно Windows, Alt, Control и Shift. Можете също да правите разлика между ляв и десен Alt, Control и Shift с модификаторите, което отваря много място за допълнителни клавишни комбинации. Например, + е десен Shift. Разгледайте в списък с ключове за всичко, което можете да препоръчате. (Спойлер: Можете да препращате към почти всеки клавиш. Можете дори да препращате към други устройства за въвеждане без клавиатура с малко разширение).

Можете да комбинирате толкова клавиши, колкото искате, в един бърз клавиш, но скоро ще ви свършат комбинациите от клавиши, които да запомните. Тук се намесват модификаторите, които ви позволяват да правите по-луди неща. Нека разгледаме един пример от документите на AHK:

  Как да видите скрит „cheat Sheet“ от клавишни комбинации на iPad

Зеленият #IfWinActive се нарича директива и прилага допълнителен контекст към клавишните комбинации физически под него в скрипта. Всяка клавишна комбинация след нея ще се задейства само ако условието е вярно и можете да групирате няколко бързи клавиши под една директива. Тази директива няма да се промени, докато не натиснете друга директива, но можете да я нулирате с празно #If (и ако това изглежда като хак, добре дошли в AHK).

Директивата тук проверява дали конкретен прозорец е отворен, дефиниран от ahk_class Notepad. Когато AHK получи входа „Win+C“, той ще задейства действието под първото #IfWinActive само ако директивата е върнала true, и след това ще провери второто, ако не е. AHK има много директиви и можете да намерите всички тях документите.

AutoHotkey също има горещи струни, които функционират като бързи клавиши, с изключение на заместването на цял низ от текст. Това е подобно на това как работи автоматичното коригиране – всъщност има един скрипт за автоматично коригиране за AHK—но поддържа всяко действие AHK.

Горещият низ ще съвпада с низа само ако е въведен точно. Той автоматично ще премахне съответстващия текст, за да замени и горещия низ, въпреки че това поведение може да бъде коригирано.

Действия

Действие в AHK е всичко, което има външен ефект върху операционната система. AHK има много действия. Не можем да обясним всички, затова ще изберем някои полезни.

Изпращане на вход, независимо дали е текст или различни натискания на бутони.
Преместване на мишката наоколо. Всъщност AHK понякога погрешно се обозначава като софтуер за измама за видеоигри, тъй като хората са направили напълно функциониращи aimbots с него.
Щракване с мишката, с позициониране спрямо текущия прозорец.
Показване на диалогови менюта, пълен с формуляри и полета за въвеждане.
Преместване на прозорци наоколо, регулиране на размера и отваряне и затваряне.
Пускане на музика.
Писане в системния регистър на Windows. Да наистина.
Промяна на съдържанието на клипборда.
Четене и писане на файлове. Можете да преглеждате файлове и да изпълнявате действия на всеки ред. AHK може дори да пише в .ahk файлове и да коригира собствен код.

  Премахнете значката с името си от горния десен ъгъл на Chrome

Повечето от тези действия ще имат и информационно-ориентирани команди, свързани с тях. Например, можете да пишете в клипборда, но можете също да накарате съдържанието на клипборда да се съхранява в променлива и да стартирате функции, когато клипборда се промени.

Обвързвайте всичко с контролни структури

AHK не би бил това, което е без всички структури за контрол, които го правят Тюринг-пълен.

В допълнение към директивите #If, имате достъп и до Ако вътре в блоковете за действие. AHK има За бримки, къдрава скоба блокове, Опитвам и Catch изявления и много други. Можете да получите достъп до външни данни от блока за действие и да ги съхранявате променливи или обекти за използване по-късно. Можете да дефинирате персонализирани функции и етикети. Наистина, всичко, което бихте могли да направите лесно на друг език за програмиране, вероятно можете да направите в AHK с малко главоболие и преглед в документите.

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

Едно е сигурно – сценарият ви вероятно няма да е хубав. Но нито AutoHotkey, и това е добре.