Keybinder mit Taste Aktivieren und Deaktivieren

  • Hallo.


    Ich habe vor für meine Fraktion einen Keybinder zu erstellen.
    Ich bin fast schon fertig nur 1ne Sache brauche ich.
    Das man denn Keybinder nach dem Login erst mit
    F3 Aktiveren muss (Wenn man versucht mit dem Keybinder zu schreiben soll stehen "Du hast den Keybinder noch nicht Aktiviert" dann Enter und das "Aktviere es mit F3"
    Wenn man dies dann getan hat soll stehen "Du hast deinen Cali Kartell Keybinder erfolgreich Aktiviert"
    dann soll man die Tasten nutzen können.
    Wenn man wieder F3 drück soll stehen "Du hast deinen Cali Kartell Keybinder erfolgreich Deaktivert" und wenn man versucht damit Tasten zu drücken soll stehen "Du hast den Keybinder noch nicht Aktiviert" dann Enter und das "Aktviere es mit F3"


    hoffe ihr versteht das ^^ Und meine frage ist ( Ist das mit API?)

  • Vorweg:
    Bitte das nächste Mal so ein Thema in dem folgenden Bereich eröffnen, da bekommst du schneller hilfe:
    Coding



    Also..
    nein du brauchst dafür keine API.
    Nehmen wir mal an du hast ein Script das folgendermaßen aussieht:


    Die erste Möglichkeit wäre, dass man beim Start der Anwendung eine Variable mit dem Wert Null setzt und diese bei jedem Hotkey abfragt.
    Dafür nimmst du eine Taste z.B. Numpad9 und mit dieser setzt du dann die Variable immer auf den anderen Status.
    Also wenn die Variable gleich Eins ist, soll sie zu Null geändert werden und anders herum, sowie eine Nachricht, wenn sich der Status verändert.
    Bedenke aber hierbei, dass du dann für jeden Hotkey in deinem Script die ersten zwei Zeilen von der Numpad0 Taste einfügen musst.
    Sollte dann so aussehen:


    Die zweite Möglichkeit wäre die Funktion Suspend zu benutzen.
    Dafür wird keine weitere Abfrage bei jeder Taste benötigt, da Autohotkey mit dieser Funktion alle Hotkeys und Hotstrings deaktiviert.
    Kannst ja mal die Funktion hier nach lesen, wenn du mehr darüber wissen willst:
    https://autohotkey.com/docs/commands/Suspend.htm#Parameters


    Dafür nehme ich einfach wieder Numpad9 als Beispiel.
    Ist vom Prinzip her fast genau so wie die erste Möglichkeit, also eigentlich einfach zu verstehen:

    Code
    Numpad9::
    Suspend
    if(A_IsSuspended)
    {
    	SendInput, tDer Keybinder wurde aktiviert{Enter}
    }
    else
    {
    	SendInput, tDer Keybinder wurde deaktiviert{Enter}
    }


    Mit der Suspend Funktion lassen sich aber keiner Timer, für Killzähler o.ä. pausieren.
    Am anfang eines Timers müsstest du dann folgendes schreiben:

    Code
    if(A_IsSuspended)
    	return


    MfG