Тема: AHK: Описание функции/global/if then else - я немного запутался...
Извиняюсь за столь сложное название темы, но вопрос один.
Вот три фрагмента одной программы.
1. Описание переменных
;=============Секция эмуляции кнопок============
; Модификаторы - две штуки
btJoy7 := 7
btShiftA := btJoy7
; и т.д. все описание приводить не стал - очень много
2. Функция проверки, все переменные global определены в основном коде.
fnShiftABMouse(NumKeyJoy)
{
global btShiftA, fShiftA, ShiftA
global btShiftB, fShiftB, ShiftB
global ButtonLeft
global ButtonRight
fShiftA := GetKeyState(ShiftA)
fShiftB := GetKeyState(ShiftB)
if (NumKeyJoy = btShiftA)
return 1 ; Истина - клавиша смещения A
if (NumKeyJoy = btShiftB)
return 2 ; Истина - клавиша смещения B
if (NumKeyJoy = ButtonLeft)
return 3 ; Истина - клавиша мышки ЛКМ
if (NumKeyJoy = ButtonRight)
return 4 ; Истина - клавиша мышки ПКМ
return 0 ; Ложь - клавишу можно обрабатывать
}
3. Обработка одной кнопки.
lbJoy1:
if fnShiftABMouse(btJoy1)
return
if (fShiftA)
send {%btJoy1KeyA%}
else if (fShiftB)
send {%btJoy1KeyB%}
else
send {%btJoy1Key%}
return
По №1 вопросов нет
По №2 правильно ли я описал переменные глобальные, а также сам IF
По №3 тот же вопрос.
Меня интересует семантика AHK... поясню
if проверка - заключать в скобки обязательно или нет?
then {действие} - обязательно на другой строке?
else|else if - тот же вопрос.
Просто я не могу точно понять как верно описать if then else что бы AHK меня понял.
P.S. Просто проверять каждое условие на верность с помощью отл. точек сложновато.
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019 Click to Download