Frage Autohotkey, wie Fenster-Version empfindlich Hotkey zu definieren?


Ich versuche zu definieren Gewinn + 1 um eine Anwendung unter Windows XP zu starten, aber nicht unter Windows 7. Wie kann ich das machen?

Das folgende Snippet wird dazu führen, dass Windows 7 "Trigger on Win 5.x" ebenfalls anzeigt. Was läuft falsch?

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

Autohotkey Version 1.1.13.01


0
2018-01-21 03:19


Ursprung




Antworten:


Aktualisieren:  #If [, Expression ] Die Operatoren "zwischen", "ist", "in" und "enthält" werden in Ausdrücken nicht unterstützt.

Ich habe es geändert in

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

Hinweis: keine Leerzeichen in WIN_2003,WIN_XP,WIN_2000

Dies zeigt keine Meldung in Windows 7


1
2018-01-21 03:42



Danke, aber tut mir leid, immer noch nicht das, was ich erwarte, das wird Win7's natives ungültig machen Win+1 Funktionalität. - Jimm Chen
Sie haben diese spezielle Anforderung nicht erwähnt! - AEonAX


Ich denke, ich habe es herausgefunden. Autohotkey #If doc präsentiert Beispiele, dass die Bedingung eine Funktion sein kann, so dass der folgende Code funktioniert:

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

Gewinn + 1 funktioniert auf WinXP und Gewinn + 1 behält seine ursprüngliche Funktionalität auf Win7 bei.


1
2018-01-21 05:22



Ja, das wird funktionieren. - AEonAX