Ошибка в функции, чтобы открыть любое приложение с AutoHotKey - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь создать функцию для открытия любого приложения, но я получаю сообщение ниже.Что мне нужно поменять, чтобы это заработало?

+!n:: openAPP("notepad.exe")

openAPP(appName)
{
    StringCaseSense, On
    Process, Exist, %appName%
    if ErrorLevel
    {   
        if WinExist("ahk_exe " . %appName%)
        {
            WinActivate, ahk_exe %appName%
        }          
    }
    else
    {
        Run %appName%
    }
    return
}

enter image description here

С уважением, Элио Фернандес

1 Ответ

1 голос
/ 25 апреля 2019

Вам нужно изменить
if WinExist("ahk_exe " . %appName%)
до
if WinExist("ahk_exe " . appName)

Без использования %% вокруг appName.

Функции могут принимать выражения в качестве параметров, и нет необходимости заключать имя переменной в %%. Для команд , с другой стороны, вы должны заключить имя переменной в %%, чтобы извлечь значение, хранящееся в этой переменной.

Например, в вашем скрипте:
WinExist() - это функция , и вы будете использовать ее, как указано выше:
WinExist("ahk_exe " . appName)

WinActivate - это команда , и вы должны использовать %% (как вы правильно делаете):
WinActivate, ahk_exe %appName%

...