1

Тема: AHK: Преобразование переменной в дргую

Есть функция "IniWrite", она записывает инфу в переменную файла .ini, так вот, есть в AHK функция Hotkey. Допустим мы создадим окно GUI

Gui, add, hotkey, x20 y10 w80 h20 vkey,
Gui, add, button, x20 y40 w80 h20 gsave, Сохранить
Gui, add, button, x20 y70 w80 h20 gcheck, Проверить
Gui, show, Center w200 h100, GUI Hotkey
return

save:
Gui Submit, Nohide
IniWrite %key%, %A_ScriptDir%/Proverka.ini, proverka, key
TrayTip, GUI Hotkey, Сохранено
return

check:
Gui Submit, Nohide
IniRead, key, %A_ScriptDir%/Proverka.ini, proverka, key
MsgBox, Клавиша будет - %key%
return

Так, вот, вопрос вот в чём, как сделать, чтобы из этого .ini файла считывал переменную "key" (допустим мы в Хоткее указали сочетание клавиш - Alt + 1, в ини файл он запишет key=!1) и преобразовывал её не в !1 а в Alt + 1.
P.S. Мне нужно, чтобы не именно какую-то цифру или букву преобразовывало из !1 в Alt + 1, а любую букву или цифру с восклицательным знаком или^, #,+ и тд
Пример:
из !2 в Alt + 2
из +1 в Shift + 1
из ^a в Ctrl + A

2

Re: AHK: Преобразование переменной в дргую

Ссылка в подписи.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

3

Re: AHK: Преобразование переменной в дргую

StringReplace?

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

4

Re: AHK: Преобразование переменной в дргую

http://forum.script-coding.com/viewtopi … 23#p105023

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

5

Re: AHK: Преобразование переменной в дргую

serzh82saratov
Спасибо большое, помогло.

6

Re: AHK: Преобразование переменной в дргую

Так проще, если не нужны левые\правые модификаторы.

HKToStr(HK) {
	Static Prefix := {"^":"Ctrl","!":"Alt","+":"Shift","#":"Win"}
	For k, v in Prefix
		Instr(HK, k) && (HK := StrReplace(HK, k), M .= v "+")
	Return M . (StrLen(HK) = 1 ? Format("{:U}", HK) : HK)
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui