Я пытаюсь определить Win+1 для запуска какого-либо приложения в Windows XP, но не хочу такого поведения в Win7+. Как я могу это сделать?

Следующий фрагмент заставит Windows 7 также показать окно «Trigger on Win 5.x». Что не так?

#If, A_OSVersion in WIN_2003, WIN_XP, WIN_2000
#1::
    MsgBox Trigger on Win 5.x
return
#If

Autohotkey версия 1.1.13.01

2 ответа2

1

Обновление: #If [, Expression ] Операторы "между", "есть", "в" и "содержится" не поддерживаются в выражениях.

Я изменил это на

#1::
If A_OSVersion in WIN_2003,WIN_XP,WIN_2000
    MsgBox Trigger on Win 5.x
return

ПРИМЕЧАНИЕ. В WIN_2003,WIN_XP,WIN_2000

В Windows 7 не отображается окно сообщения

1

Я думаю, что я понял это. AutoIkey #If doc представляет примеры того, что условие может быть функцией, поэтому работает следующий код:

IsWin5x()
{
    if A_OSVersion in WIN_2003,WIN_XP,WIN_2000
    {
        return 1
    }
    else
    {
        return 0
    }
}

#If IsWin5x()
#1::
    MsgBox Trigger on Win 5.x
return
#If

Win+1 работает на WinXP, а Win+1 сохраняет свою первоначальную функциональность на Win7.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .