1

Тема: AHK: Перевод hotkey в обычную форму.

Нужна функция RegExMatch которая сможет перевести hotkey в обычную текстовую форму.
Для примера: !F4 в Alt+F4.

2 (изменено: svoboden, 2017-08-01 02:35:16)

Re: AHK: Перевод hotkey в обычную форму.

http://forum.script-coding.com/viewtopi … 49#p104949

3 (изменено: serzh82saratov, 2017-08-06 14:40:29)

Re: AHK: Перевод hotkey в обычную форму.

Если учесть что может быть такой префикс "<!+", то лучше так:


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)
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui