1 (изменено: paulnighter, 2014-03-20 08:20:17)

Тема: AHK: Настраиваемые хоткеи

Добрый день!
Есть рабочий скрипт (все ОК, все работает)

<bla-bla делает все что надо bla-bla>
#include kbd.ahk

сам kbd.ahk

Up::w
Down::s 
Left::s
Right::d
MButton::RButton

всего лишь перечисление хоткеев
понятно, что при компиляции в ехе он жестко устанавливает хотки, включая в компиляцию инклюд kbd.ahk.

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

Вопрос: как сделать хоткеи настраиваемыми?

2

Re: AHK: Настраиваемые хоткеи

Хоткеи поставить читать из глобальных переменных, которые инициализируются при старте скрипта. Сделать отдельный хоткей на вызов GUI юзеру, в гуи вывести для каждого хоткея Gui, Add, Hotkey, на изменения в них повесить функцию замены хоткея.

3

Re: AHK: Настраиваемые хоткеи

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

Return ; На всякий случай
HotKeysInit:
Loop, Read, %A_ScriptDir%\kbd.ini
{
   __:=StrSplit(A_LoopReadLine,":")
   Hotkey, % _:=__[1], _
   _%_%:=__[2]
}
Return
_:
   SendInput % _%A_ThisHotkey%
Return

Файл с хоткеями kbd.ini

Up:w
Down:s
Left:a
Right:d

Разумеется, сейчас файл kbd.ahk содержит не хоткеи, а исполнимый код, поэтому он должен вызываться в секции автовыполнения скрипта

GoSub HotKeysInit
<bla-bla делает все что надо bla-bla>
#include kbd.ahk