Горячие клавиши для конкретных приложений с AutoHotkey
Что такое AutoHotkey
AutoHotkey — это скриптовый язык для автоматизации действий в Windows. Коротко: позволяет назначать горячие клавиши, отправлять текст, управлять окнами и автоматизировать повторяющиеся задачи.
Почему использовать горячие клавиши, привязанные к приложению
- Фокус на контексте: одна и та же комбинация может выполнять разные действия в разных приложениях.
- Избежание конфликта: вы не переназначаете системные сочетания глобально.
- Быстрая автоматизация ввода и макросов в конкретных рабочих сценариях.
Начнём: базовый скрипт
Если AutoHotkey ещё не установлен, скачайте инсталлятор и установите его на Windows.

- Создайте папку для ваших AHK-скриптов в файловом менеджере.
- Внутри папки щёлкните правой кнопкой и выберите New -> AutoHotkey Script, затем задайте имя.

- Правой кнопкой по файлу — Edit.

Всё, что создаётся по умолчанию, можно оставить. Оставьте пару пустых строк после рекомендованных записей.

Вставьте следующий блок — это минимальная структура для создания правила, применимого только к активному окну:
#if WinActive("TYPE FILENAME")
#ifВторой #if закрывает условие. TYPE FILENAME — заполнитель, который мы заменим реальными значениями.
Как получить идентификаторы окна с помощью Window Spy
Нам нужно узнать, как AutoHotkey видит окно браузера или приложения. Для этого используется утилита Window Spy, которая идёт вместе с AHK.
- Для проверки временно добавьте в скрипт простую строку и сохраните файл:
Msgbox, Done?
Запустите скрипт двойным кликом — появится диалог. Это гарантирует, что AHK запущен и в трее доступно его меню.
Правой кнопкой по зелёному значку AHK в системном трее — выберите Window Spy.

- Перейдите в браузер и откройте нужную страницу. В окне Window Spy вверху вы увидите информацию об активном окне. Нас интересуют
ahk_class,ahk_exeиahk_pid. Обычно для привязки надёжнее использоватьahk_exe.

В примере для Firefox Window Spy показывает ahk_exe firefox.exe.
- Скопируйте строку
ahk_exe firefox.exeи часть заголовка окна (например, словоmakeиз «Make Tech Easier») — вернитесь в скрипт.
Замените плейсхолдеры так:
#if WinActive("NAME")AndWinActive("TYPE FILENAME")NAME — часть заголовка окна (необязательно полное совпадение). TYPE FILENAME — скопированный идентификатор типа ahk_exe firefox.exe.
Добавление горячих клавиш
Добавьте перед Msgbox, Done? строку с комбинацией, например:
#if WinActive("make")AndWinActive("ahk_exe firefox.exe")
m::
Msgbox, Done?
return
#if
Если запустить скрипт глобально и нажать m в другом окне, ничего не произойдёт. Но если активен Firefox с заголовком, содержащим make, то по нажатию m появится диалог. Это пример оконно-специфичной горячей клавиши.

Пример полезного действия: вставка текста с буфера обмена
Замените содержимое между #if и завершающим #if на следующий фрагмент:
^b::
Send, I just copied %Clipboard%
returnПерезапустите скрипт. В поле ввода на странице Make Tech Easier нажмите Ctrl+B — в поле появится строка “I just copied X”, где X — последнее содержимое буфера обмена.
Символы для обозначения модификаторов в AutoHotkey
- ^ — Control
- ! — Alt
- — Shift
Эти символы можно использовать и в сочетании с командой Send. Например, чтобы переназначить Win+B на Ctrl+C:
#b::
Send,^c
returnНесколько сочетаний и правила управления конфликтами
- Можно объявить любое количество сочетаний внутри одного блока
#if. - Нельзя назначить две функции на одну комбинацию в одном контексте. Разрешено, если те же комбинации определены в разных
#if(разные приложения). - Если нужно условно отключать сочетание, используйте
#Ifс логикой или проверкуWinActive.
Шаблоны и примеры (полезные сниппеты)
- Быстрая вставка шаблона ответа (в приложении с “mail”):
#if WinActive("mail")AndWinActive("ahk_exe outlook.exe")
^r::
Send, Здравствуйте,{Enter}Спасибо за письмо. Я уточню и вернусь с ответом.{Enter}{Enter}С уважением,{Enter}Ваше имя
return
#if- Переназначение сочетаний целиком для редактора кода (VSCode):
#if WinActive("Visual Studio Code")AndWinActive("ahk_exe Code.exe")
#b::
Send,^c
return
#if- Быстрое вставление текущей даты (формат dd.MM.yyyy):
#if WinActive("notepad")AndWinActive("ahk_exe notepad.exe")
^d::
FormatTime, curDate,, dd.MM.yyyy
SendInput, %curDate%
return
#if- Отправка сочетаний (имитация Ctrl+F):
#if WinActive("make")AndWinActive("ahk_exe firefox.exe")
^f::
Send,^f
return
#ifМини-методология внедрения (SOP)
- Идентификация сценариев: список действий, которые нужно ускорить.
- Определение целевых приложений и окон: используйте Window Spy для
ahk_exe/ahk_class. - Создание скрипта: добавляйте
#If WinActive(...)с набором сочетаний. - Тестирование: запускать AHK, проверять в целевых окнах.
- Документирование: храните комментарии в скрипте и отдельный changelog.
- Раскатка: копирование скрипта в рабочие ПК, автозагрузка через ссылку в папке автозагрузки.
Чеклист перед внедрением
- Выделены приложения и рабочие сценарии.
- [ ] Получены
ahk_exeилиahk_classчерез Window Spy. - Нет конфликтов с системными сочетаниями.
- Скрипт протестирован в целевых окнах.
- Создана резервная копия старого скрипта перед изменениями.
Критерии приёмки
- Горячая клавиша срабатывает только в целевом приложении.
- Нет побочных эффектов в других приложениях.
- Пользователь понимает, как отключить/редактировать сочетание.
Отладка: распространённые проблемы и решения
- Скрипт не срабатывает: проверьте, запущен ли AHK и активен ли правильный скрипт (в трее значок AHK).
- Неверный идентификатор окна: используйте
ahk_classвместоahk_exeили увеличьте часть заголовка в WinActive. - Конфликт сочетаний: временно закомментируйте другую привязку и перезапустите.
- Send не вставляет текст: попробуйте SendInput или Sleep перед Send для ожидания готовности окна.
Роли и ответственность (кто что делает)
- Администратор IT: развёртывание и автозагрузка скриптов на рабочих станциях.
- Конечный пользователь: подтверждение корректности сценариев и тестирование.
- Скрипт-автор: документирование, резервное копирование, поддержка изменений.
Безопасность и приватность
- Скрипты AHK выполняют ввод от имени пользователя. Не храните в них пароли в открытом виде.
- Ограничьте права на каталоги со скриптами, чтобы предотвратить подмену файлов.
Совместимость и миграция
- Идентификаторы
ahk_exeзависят от имени исполняемого файла — при обновлении приложения имя может поменяться. - Тестируйте после обновлений приложений. При проблемах можно переключиться на
ahk_classили на части заголовка окна.
Пример расширенного сценария: многооконный профиль с разными сочетаниями
#if WinActive("make")AndWinActive("ahk_exe firefox.exe")
^b::
Send, I just copied %Clipboard%
return
#if
#if WinActive("Inbox")AndWinActive("ahk_exe outlook.exe")
^b::
Send, Ответ отправлен, проверю детали
return
#ifЭтот подход позволяет использовать ту же комбинацию (Ctrl+B) для разных целей в зависимости от приложения.
Решение о назначении сочетаний — простое дерево решений
flowchart TD
A[Нужно ли действие в конкретном приложении?] -->|Да| B[Есть стандартное сочетание в приложении?]
A -->|Нет| C[Использовать глобальное сочетание]
B -->|Да| D[Оставить стандартное или переназначить глобально?]
B -->|Нет| E[Назначить #If WinActive с ahk_exe]
D --> F[Документировать и тестировать]
E --> F
C --> FЧастые ошибки и когда метод не работает
- Приложение блокирует ввод (например, игры с античитом) — AHK может не работать.
- Приложение запускается от имени администратора, а AHK — нет. В этом случае запускайте AHK с повышенными правами.
- Имя исполняемого файла нестабильно — используйте
ahk_classили комбинацию свойств окна.
Краткое руководство по безопасности
- Не запускайте чужие AHK-скрипты без проверки.
- Не храните секреты в скриптах.
- Отключайте автозапуск скриптов при подозрениях.
FAQ
Как запустить скрипт AutoHotkey при старте Windows?
Создайте ярлык на скрипт и поместите его в папку автозагрузки: Win+R → shell:startup → вставьте ярлык.
Можно ли использовать один скрипт для многих профилей приложений?
Да. Просто объединяйте несколько блоков #if WinActive(...) в одном файле.
Что лучше использовать: ahk_exe или ahk_class?
ahk_exe чаще устойчивее к изменениям интерфейса, но если exe-имя меняется, ahk_class может оказаться надёжнее.
Заключение
AutoHotkey даёт гибкий способ назначать горячие клавиши, работающие только в нужных окнах. Это снижает количество конфликтов и ускоряет работу. Начните с простых правил #If WinActive(...), протестируйте, затем расширяйте библиотеку сниппетов и документируйте изменения.
Важно: проверяйте поведение после обновлений приложений и не храните в скриптах секретов.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента