Тема: AHK: изменение клавиши, которая нажимается в цикле, через GUI
Для полного удобства хочу изменять клавишу (переменная Key3), которая нажимается в цикле. Как я уже понял, мой вариант неправильный. Покурил чужой код и гайды, понял, что нужно реализовывать через Hotkey (или нет?). Но толково реализоваться у себя я не смог.
Если {Key3} заменить, к примеру, на {VK42} (клавиша B англ), то всё отлично работает, но тогда жёстко привязывает скрипт к какой-то одной клавише.
Добавлено: Почти разобрался. Вместо send {Key3} нужно было использовать SendInput, % Key3. НО, работает это только для клавиш из 1-го символа (1-9, a-z и прочее). F1-F12 так внести не получается.
Вот фрагмент кода GUI:
Gui, Tab, 3 ; Сундуки
Gui, add, text,, Сундук на кнопке
Gui, Add, Edit, w25 vKey3, 1
Gui, add, text,, Пауза между прожатиями, мс
Gui, Add, Edit, w40 vTime, 4000
Gui, Add, Button, default, Применить
Gui, Add, Button, y+10 gTest, Test
Gui, Add, Button, x+10 gTest2, Test2
Gui, Add, GroupBox, w275 h75 y+60,
Gui, Add, Button, gLabel4 xp+10 yp+20 w40 h40, Старт
Gui, Add, Button, gStop x+10 w40 h40, Стоп
Gui, Add, Button, x+125 w40 h40, Выход
Gui, ShowИ вот фрагмент кода:
{ ; сундуки по кнопке
isRunning := false ; переменная
Label4: ; цикл для переменной
ifwinexist, Perfect World
WinActivate
sleep 1000
if (isRunning) {
isRunning := false
return
}
isRunning := true
GoSub Label5
return
Label5:
Loop {
if (!isRunning)
break
send {Key3} ; <-----------------------
sleep Time
}
return
}
