Тема: AHK: Несколько строк кода, как параметр функции.
Здравствуйте! Создал скрипт, который работает на ура, но в нём есть небольшой недостаток. В нём много повторяющихся/похожих строк. Хочется скомпоновать всё это в функцию.
Вот пример имеющегося у меня кода:
~1::
IfWinExist, Curves
{
IfWinActive, Curves
{
ControlFocus, PSViewC1, Curves
ControlSend, PSViewC1, {LAlt Down}, Curves
ControlSend, PSViewC1, {3}, Curves
ControlSend, PSViewC1, {LAlt Up}, Curves
}
}
Return
~LCtrl & SPACE::
IfWinExist, Total Commander
{
IfWinActive, Total Commander
{
Send, {SPACE}
WinWaitActive, Комментарий,
Send, ^{A}
Send, {BACKSPACE}
SendInput {Raw}ОТПЧ
Send, {F2}
}
}
Return
Как видите в обоих примерах используется одинаковая, если можно так сказать, конструкция.
Проверяем есть ли такое окно.
Проверяем активно ли оно.
Выполняем некоторые действия.
Кроме того, имеются вложенные проверки:
~NumpadENTER::
IfWinExist, Curves
{
IfWinActive, Curves
{
Send, {Enter}
WinWaitActive, Adobe Photoshop, Save changes, 1
IfWinExist, Adobe Photoshop, Save changes
{
IfWinActive, Adobe Photoshop, Save changes
{
Send, {Enter}
WinWaitActive, JPEG Options, , 1
IfWinExist, JPEG Options
{
IfWinActive, JPEG Options
{
Send, {Enter}
}
}
}
}
}
}
Теперь, имеющийся код хочу укоротить, за счёт создания функции проверки окна, с названием и текстом отправляемым как параметр и выполнения ряда команд, тоже отправляемых как параметр. Знаю что, это не правильно, но что-бы было нагляднее, что мне нужно:
interacts(mywintitle, myactions)
{
IfWinExist, mywintitle
{
IfWinActive, mywintitle
{
myactions
}
}
}
~1::
myCurActions = ;НЕ ЗНАЮ КАК ЗДЕСЬ СОХРАНИТЬ НЕСКОЛЬКО СТРОК В ОДНУ ПЕРЕМЕННУЮ. ВОЗМОЖНО ЛИ ЭТО?
ControlFocus, PSViewC1, Curves
ControlSend, PSViewC1, {LAlt Down}, Curves
ControlSend, PSViewC1, {3}, Curves
ControlSend, PSViewC1, {LAlt Up}, Curves
interacts(Curves, myCurActions)
Return
Каким будет правильный синтаксис подобного кода?
Спасибо!