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

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

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

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

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

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

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

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

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

Как работи AutoHotkey?

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

#c :: Стартирайте връщане на Chrome

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

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

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

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

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

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

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

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

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

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

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

Действия

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

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

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

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

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

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

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

Едно е сигурно - вашият скрипт вероятно няма да бъде красив. Но нито AutoHotkey, и това е добре.