Вы еще не слышали о программе Autohotkey? Очень зря. Эта крохотная программа может сэкономить вам просто тонну времени. Она способна делать настоящие чудеса и автоматизировать такие каждодневные и рутинные задачи, о которых вы даже не задумываетесь. Удобство, эффективность и скорость – все это в одном флаконе. Если быть кратким, то Autohotkey – это утилита, предназначенная для автоматизации каждодневных операций. То, что вы делаете десятками щелчков мышью, Autohotkey может сделать всего одной комбинацией клавиш – причем такой, которую вы сами выбрали. Заинтригованы?

Ты сможешь лишь 85%

Расширим наше определение. Утилита Autohotkey позволяет выполнять специальные сценарии, определяющие использование глобальных горячих клавиш (тех самых “hotkey”). С ее помощью можно также запускать любые программы, а программисты могут и создавать программы, использующие бесчисленные возможности Autohotkey. Фактически, с помощью этого инструмента в Windows можно сделать что угодно, все зависит лишь от вашей фантазии. Утилита доступна только в версии для Windows, так что владельцы макинтошей и линукса идут лесом.

Дабы не растекаться мыслью по древу, давайте сразу что-нибудь замутим. В первую очередь, необходимо скачать саму программу. Сделать это можно по следующей ссылке:

Скачать инсталлятор Autohotkey

После установки ничего больше запускать не нужно, поскольку все остальное вы будете делать не в окне программы (а его и вовсе нет, ха-ха), а в обычном текстовом редакторе, таком как Блокнот. Впрочем, настоятельно рекомендую установить настоящий текстовый редактор, который называется Notepad++, и не позорьтесь этим жалким Блокнотом.

Впрочем окно, у программы все же есть, но используется оно лишь для проверки работы скрипта:

окно программы Autohotkey

Теперь, как всегда делают с первым языком программирования, создадим наш первый скрипт. Это будет обычное всплывающее окно с могучей надписью “Я рогалег”. Для этого нам понадобится команда MsgBox, которая вызывается с любым текстом. Итак, открываем наш текстовый редактор и пишем:

MsgBox, Я рогалег

Сохраняем файл как 1.ahk (название файла может быть любым, а вот расширение .ahk укажите обязательно). Теперь дважды щелкните на сохраненном файле и скрипт будет выполнен. Результат пока что весьма незамысловат, ну и что? Надо же с чего-то начинать.

Autohotkey

Обратите внимание на область уведомлений – когда вы запустили скрипт, там появится значок Autohotkey. На нем можно щелкнуть правой кнопкой мыши и выбрать разнообразные команды.

скрипт Autohotkey

Сам файл скрипта имеет предельно простую структуру. Любой код, который должен выполняться автоматически с запуском скрипта, размещается в вверху файла, без использования идентификаторов. А вот идентификаторы уже понадобятся для указания горячих клавиш и много другого. Чтобы указать комбинацию клавиш, следует ввести нужный идентификатор и последующий код, который будет выполняться с нажатием этих клавиш. Скажем, давайте сделаем скрипт, чтобы автоматически запускать программу Notepad++ с нажатием нужных клавиш.

#n:: Run notepad++

Эта команда использует комбинацию клавиш <Win+n> (или <Пуск+n>, смотря как клавиша у вас называется) для запуска программы Notepad++. Сохраняем файл с расширением .ahk, дважды на нем щелкаем. Ничего не произойдет, только в области уведомлений появится нужный нам значок. Теперь нажимаем комбинацию клавиш и программа Notepad++ будет запущена, ура-ура.

В команде значение “#n” указывает на клавиши, символы “::” разделяют значения клавиш от команд . В данном случае символ “#” указывает на клавишу <Win> на клавиатуре. Другие базовые клавиши обозначаются так:

Клавиша Символ
Win #
Control ^
Alt !
Shift +

Разумеется, это лишь краткий список. А полный нужно смотреть в документации на русском или английском языке.

Теперь сделаем что-то покруче. Скажем, сделаем окно, в котором можно ввести запрос для поиска на сайте windatum.com.

#n::
InputBox, SearchTerm, Поиск на windatum.com, Введите запрос:
if not ErrorLevel { if SearchTerm <> "" Run http://windatum.com/?s=%SearchTerm%&Submit=Search } return

Нажимаем комбинацию клавиш <Win+n> и вуяля, появляется нужное окно скрипта. Вводим в нем любой запрос, скажем, “установка с флешки” и щелкаем на кнопке ОК. Теперь будет автоматически запущен ваш браузер, который сам перейдет на сайт windatum.com, введет нужный запрос и покажет результат. Неплохо для пары строк кода, а?

тестовый скрипт Autohotkey

пример Autohotkey

А вот, скажем, скрипт, чтобы закрывать любое окно Windows с помощью комбинации клавиш <Ctrl+Q>:

$^q::
IfWinActive ahk_class WMPlayerApp
PostMessage, 0x10
else
WinClose, A
return

Или очистка корзины с использованием комбинации клавиш <Shift+Alt+Backspace>:

+!Backspace:: FileRecycleEmpty

Пробуя эти скрипты, вы можете столкнуться со следующей проблемой. При запуске скрипта, после нажатия указанной комбинации клавиш, появится сообщение “The hotkey “комбинация клавиш” will not be active because it does not exist in the current keyboard layout”.

win-0006

В сообщении указано, что клавиша не будет активна, поскольку ее нет в текущей раскладке клавиатуры. Данная проблема связана с тем, что текущая раскладка переключается после запуска программы, а вот скрипт запускается всегда исключительно с раскладкой по умолчанию. Соответственно, если в системе назначаемая клавиша может иметь другую раскладку, она становится полностью зависимой от раскладки языка по умолчанию. Это типично для систем, где установлено несколько раскладок.

Решить эту проблему можно, найдя нужный код клавиши. Для этого сделайте новый скрипт лишь с одной командой:

#InstallKeybdHook

Запустите его и дважды щелкните на значке программы Autohotkey. В открывшемся окне выберите команду View > Key history and script info. Теперь нажмите нужную клавишу и затем клавишу <F5>. Прокрутите окно вниз. Там вы увидите список нажатых клавиш с их параметрами. Смотрим на предпоследнюю строку, так как последняя указывает на только что нажатую клавишу <F5>. Скажем, нужна нам клавиша <N>:

клавиши Autohotkey

Находим клавишу в столбце N и ее код в столбце во втором столбце SC. Это то, что нам нужно. Теперь в примере, указанном вверху, вместо

#n:: Run notepad++

нужно использовать

#SC031:: Run notepad++

Вообще, скриптов Autohotkey, без преувеличения, просто тысячи. Есть там и совершенно потрясающие вещи, скажем, как вам скрипты, которые позволяют менять раскладку и преобразовывать текст из одной раскладки в другую. Эти скрипты настолько эффективны, что даже позволяют отказаться от программ вроде Punto Switcher или Keyboard Ninja. Представлены такие скрипты на официальном форуме Autohotkey.

На хабре также есть статья с несколькими интересными скриптами Autohotkey (хотя лучше их искать на официальном форуме).

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

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

Кому нужна эта Винда? Нам нужны бабки за 180 секунд!

4 Comments

    Дмитрий

    20 Aug 2011

    Ссылка “документация к программе на русском языке” нерабочая, правильно на данный момент http://www.script-coding.com/AutoHotkey/Tutorial.html

      windata

      20 Aug 2011

      Данке шон, исправил

    jk

    03 Aug 2012

    документация к программе на русском языке сейчас тут — http://www.script-coding.com/AutoHotkeyTranslation.html

    Можешь помочь написать крохотный скрипт?
    1 действие: Нажатие клавиш Win+P (в Windows 7 — эта команда вызывает меню Проектора)
    2: Нажимается Enter

    И всё это повторяется каждые 10 секунд

    Leo

    18 Oct 2012

    Не работает макрос “поиск на сайте windatum.com” Пишет: “the leftmost character above is illegal in an expression”

Leave a Reply

Your email address will not be published. Required fields are marked *