Вам нужно изменить
if WinExist("ahk_exe " . %appName%)
до
if WinExist("ahk_exe " . appName)
Без использования %%
вокруг appName
.
Функции могут принимать выражения в качестве параметров, и нет необходимости заключать имя переменной в %%. Для команд , с другой стороны, вы должны заключить имя переменной в %%, чтобы извлечь значение, хранящееся в этой переменной.
Например, в вашем скрипте:
WinExist()
- это функция , и вы будете использовать ее, как указано выше:
WinExist("ahk_exe " . appName)
WinActivate
- это команда , и вы должны использовать %% (как вы правильно делаете):
WinActivate, ahk_exe %appName%