Тема: AHK: Перевод hotkey в обычную форму.
Нужна функция RegExMatch которая сможет перевести hotkey в обычную текстовую форму.
Для примера: !F4 в Alt+F4.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Нужна функция RegExMatch которая сможет перевести hotkey в обычную текстовую форму.
Для примера: !F4 в Alt+F4.
Если учесть что может быть такой префикс "<!+", то лучше так:
MsgBox % HKToStr("~*$<!+ScrollLock")
MsgBox % HKToStr("^#sc20")
MsgBox % HKToStr(">!<#vk44")
HKToStr(HK) {
Static Prefix := {"^":"Ctrl","!":"Alt","+":"Shift","#":"Win","<":"L",">":"R"}
Local K, K1, K2, R, R1, R2, M, P := 1
RegExMatch(HK, "S)^\s*([~\*\$\^\+!#<>]*)\{?(.*?)}?\s*$", K)
If (K2 = "")
Return ""
While P := RegExMatch(K1, "S)([<>])*([\^\+!#])", R, P) + StrLen(R)
M .= Prefix[R1] . Prefix[R2] . "+"
K := (K2 ~= "i)^(vk|sc[^r])" ? GetKeyName(K2) : K2)
Return M . (StrLen(K) = 1 ? Format("{:U}", K) : K)
}
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться