Я использовалэта замечательная программауже некоторое время, но только для нескольких основных вещей. Поэтому мне интересно, возможно ли следующее:
использовать разные наборы сочетаний клавиш для разных приложений — так, чтобы одно сочетание клавиш выполняло разные действия в разных местах.
создать некую форму режимов для приложения, где вы могли бы использовать какой-нибудь переключатель (стиль vim), и это изменило бы то, что делал бы шорткат
если бы можно было разместить какую-нибудь подпись, которая указывала бы, какой режим вы используете - небольшое улучшение предыдущего пункта
Я благодарю всех за ответы.
решение1
Пункт 1, кажется, решен. Что касается пунктов 2 и 3, вот как это можно сделать; мой код может быть не очень эффективным, но он работает:
#Persistent ;--This needs to come before any
SetTimer, IsActiveTimer, 20 ;--return in the script.
IsActiveTimer: ;--Below comes what the timer does
if StateIsActive = 1
{
MouseGetPos, Px, Py ;--The below creates tooltip when active
ToolTip, "State is: Active", Px+40, Py+50, 5
}
else
{
ToolTip,,,, 5 ;--Removes tooltip when not active
}
return
!^#z:: ;--This is the hotkey that toggles the state
;--between active and not active.
If StateIsActive = 1
{
StateIsActive := 0
}
else
{
StateIsActive := 1
}
return
!^#a:: ;--Hotkey that types either Zerg or Borg
;--depending on active/not active, so that you
;--may automatically choose the right party in
;--your documents in any potential war
If StateIsActive = 1
{
Sendinput, Zerg
}
Else
{
Sendinput, Borg
}
return
решение2
Да.
Для различных правил для разных приложений, посмотрите#ifWinActive.
Например:
; Make Ctrl+PageUp and Ctrl+PageDown work in Safari
#ifWinActive ahk_class {1C03B488-D53B-4a81-97F8-754559640193}
^PgUp::Send ^+[
#ifWinActive ahk_class {1C03B488-D53B-4a81-97F8-754559640193}
^PgDn::Send ^+]
#ifWinNotActive ahk_class PuTTY
+Ins::Send ^v
#ifWinNotActive ahk_class PuTTY
+Del::Send ^x
#ifWinNotActive ahk_class PuTTY
^Ins::Send ^c
Щелкните правой кнопкой мыши по значку AutoHotkey и щелкните правой кнопкой мыши по Window Spy, чтобы узнать значение ahk_class.
Режимы, как в Vi, тоже, похоже, возможны. Взгляните наКомандованиенапример.
решение3
создать некую форму режимов для приложения, где вы могли бы использовать какой-нибудь переключатель (стиль vim), и это изменило бы то, что делал бы шорткат
Вы можете использовать оператор #If, доступный в текущем дистрибутиве AutoHotkey_L (тот, который вы, как ожидается, скачаете с сайта). Вы можете написать что-то вроде этого:
#If Winactive("window_name") and (Mode = Mode1)
F1::MsgBox, Mode1
::mode::Mode1
#If Winactive("window_name") and (Mode = Mode2)
F1::MsgBox, Mode2
::mode::Mode2
Вы можете поставить в конце только #If, чтобы завершить все условные операторы.
Что вы подразумеваете под «подписью»? Вы можете создать небольшое окно, похожее на панель инструментов, с названием режима или изображением и обновлять его всякий раз, когда вы меняете режим или с помощью таймера, отслеживающего текущий режим.