Autohotkey,如何定义窗口版本敏感的热键?

Autohotkey,如何定义窗口版本敏感的热键?

我尝试Win+1在 Windows XP 上定义启动某些应用程序,但不希望在 Win7+ 上出现这种行为。我该怎么做?

以下代码片段也会导致 Windows 7 显示“在 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

答案1

更新: #If [, Expression ]表达式不支持运算符“between”、“is”、“in”和“contains”。

我把它改成了

#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 上不显示消息框

答案2

我想我已经明白了。Autohotkey 的#If文档提供了条件可以是函数的示例,因此以下代码有效:

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 上保留其原有的功能。

相关内容