#keyboard #keyboard-shortcuts #autohotkey
#клавиатура #сочетания клавиш #автозапуск
Вопрос:
Возможно ли определить список неиспользуемых комбинаций клавиш, которые будут использоваться в AutoHotkey для написания сценариев?
Например, Ctrl Alt 1 не используется на моей клавиатуре
^!1::
; do something
Return
Но Ctrl Alt 2 соответствует знаку @.
Я хотел бы переназначить несколько комбинаций клавиш таким образом, чтобы это не противоречило использованию других программ.
Ответ №1:
Если ваш вопрос в том, как сделать это автоматически, то ответ таков: очевидно, что нет, вы не можете этого сделать, потому что, как, черт возьми, вы могли бы сделать это автоматически?
Если вопрос заключается только в том, как это сделать, то ответ прост: вы берете каждое используемое вами приложение и замечаете клавиши и комбинации, которые вы используете в этих приложениях, и заботитесь об определении новых. Таким образом, обычно вы не делаете ничего специального, чтобы избежать их, кроме того, что просто избегаете их.
По умолчанию все горячие клавиши AHK являются общесистемными и «блокирующими». Запущенный скрипт AHK использует событие key и предотвращает дальнейшую передачу его в систему (или любое другое приложение), и это хорошо. Таким образом, в худшем случае вы потеряете возможность использовать этот ярлык в каком-либо другом приложении, и если он вам все еще нужен там — тогда вам решать, как это решить, здесь нет однозначного ответа.
Один из способов держать все это под контролем — определить горячие клавиши для конкретного приложения. Т.е. вы можете определить горячую клавишу, которая обрабатывается только при выполнении определенного условия.
Смотрите https://autohotkey.com/docs/Hotkeys.htm#Context
Комментарии:
1. «вы не можете этого сделать, потому что как вы могли бы это сделать?» — ужасное рассуждение. Определить, какие горячие клавиши доступны для регистрации, довольно просто: попробуйте зарегистрировать их с помощью RegisterHotKey. Если это не удается, они недоступны. Однако, как вы уже указали, AutoHotkey может переопределять зарегистрированные горячие клавиши. Он также поддерживает горячие клавиши, которых нет у RegisterHotKey; они почти наверняка доступны, потому что очень немногие программы используют что-либо, кроме RegisterHotKey.