Schleife vermeiden, wenn Sie die gleiche Tastenkombination zweimal drücken, ohne Original 1 zu ändern, drücken Sie die Tastenkombination (Autohotkey)

Ich möchte so etwas produzieren: 1. Wenn ich zweimal ESC drücke, möchte ich meine "made-up custom action" produzieren 2. Wenn ich 1 Esc drücke, möchte ich das ursprüngliche Escape erzeugen

Ok, hier ist die Erklärung meiner Frage:

  • This code should apply as global, means when i start the script it will work on all windows
  • %ALAT1% is variable the Active Windows title , abbreviation "Anime Land Akui Transform" some kind of silly anime game
  • If i press Esc one time . it will "pause" the game, but when i press Esc 2 times, it will "exit" the game"
  • I want to do a custom action when i press Esc 2 times, but i also don't want the original Esc key function got override when i press 1 time.

    Escape::
    if (A_PriorHotkey = A_ThisHotKey and A_TimeSincePriorHotkey < 400) 
    WinActivate, %ALAT1%
    IfWinActive, ahk_class TscShellContainerClass
    {
    Send {F5} ; F5 contains another action  
    }. 
    else
    {
     *Do original function of Escape i.e Send {Escape}     ; Now this is the problem    
    }
    return
    

nachdem ich den Code oben versucht habe: Angenommen, ich drücke "Escape" -Taste, es wird die Escape-Schleife, als ob ich Escape zweimal drücken würde. Also meine eigentliche Frage ist, wie man "Original 1 mal drücken Esc Tastenfunktion" wird nicht zu "unsere Gewohnheit 2 drücken Esc-Taste Funktion" Schleife?

0
@ MCL eerrr ich bearbeite die Frage, und errr ich brauche #IfWinActive nicht, wenn ich nur globale Aktion produzieren will.
hinzugefügt der Autor laruffii, Quelle
Ich denke, dass du wirklich die Grundlagen von AHK nachlesen solltest, die Kommandodokumente sind normalerweise ein Guter Ausgangspunkt. Ihr Code ist sehr verwirrend, z. Die if (...) -Anweisung wirkt sich nur auf die folgende Zeile aus, und es gibt weder eine Block noch Einrückung, es ist alles ein Ratespiel. Sie haben auch nie erwähnt, dass Sie irgendwie zwischen Fenstern unterscheiden wollen und der Inhal
hinzugefügt der Autor MCL, Quelle

1 Antworten

Ändern Sie die erste Zeile Ihres Codes in;

$Escape::

Dadurch wird festgelegt, dass der Hotkey nur von echten Tastenanschlägen ausgelöst wird, nicht von simulierten Tastenanschlägen.

0
hinzugefügt
Mein großer Dank geht an dich Kumpel, yayy es funktioniert jetzt
hinzugefügt der Autor laruffii, Quelle