Тема: AHK: Передать имя клавиши через переменную
Есть у меня код в котором много повторения, хочу избавится от этого индусского кода, обернув его повторения в функцию, но там нужно клавишу посылать типа: Send, +{sc20}, и я не знаю как тут быть.
Для наглядности, вот кусок повторения.
; Shift+A
+sc1E::
if GetKeyState("RShift") {
Send, +{sc1E}
Return
}
MouseGetPos, MouseX, MouseY
ClickOnButton(ApproachCoordX, ApproachCoordY)
MouseMoveTo(MouseX, MouseY)
Return
; Shift+S
+sc1F::
if GetKeyState("RShift") {
Send, +{sc1F}
Return
}
MouseGetPos, MouseX, MouseY
ClickOnButton(WarpCoordX, ApproachCoordY)
MouseMoveTo(MouseX, MouseY)
Return
; Shift+D
+sc20::
if GetKeyState("RShift") {
Send, +{sc20}
Return
}
MouseGetPos, MouseX, MouseY
ClickOnButton(JumpCoordX, ApproachCoordY)
MouseMoveTo(MouseX, MouseY)
Return
А нужно сделать что-то вроде:
KeyAction(keycode, X, Y) {
if GetKeyState("RShift") {
Send, +{keycode}
Return
}
MouseGetPos, MouseX, MouseY
ClickOnButton(X, Y)
MouseMoveTo(MouseX, MouseY)
}
; Shift+A
+sc1E::
KeyAction(sc1E, ApproachCoordX, ApproachCoordY)
Return
; Shift+S
+sc1F::
KeyAction(sc1F, WarpCoordX, ApproachCoordY)
Return
; Shift+D
+sc20::
KeyAction(sc20, JumpCoordX, ApproachCoordY)
Return
Подскажите пожалуйста, как можно это сделать.