2017-02-26 3 views
0

Ich benutze seit einigen Tagen .ahk und es ist cool mit zu arbeiten. Ich versuche zu sagen, dass wenn CapsLock aktiviert ist mein Code läuft/oder nicht. Dieser Code überprüft, ob CapsLock in diesem Moment gedrückt wird (funktioniert).AutoHotkey (.ahk). capslock aktiviert

Ich möchte das ändern, wenn ich CapsLock einmal aktiviert habe - wenn ich es erneut drücke, wird es deaktiviert.

Meine Untersuchung ergab, dass der Parameter P in GetKeyState, CapLck, CapsLock, P überprüft, ob CapsLock in diesem Moment physisch angeklickt ist. Wenn das wahr ist, gibt es das D zurück, mit dem die if-Anweisung unten überprüft wird.

Also versuchte ich den Code aus

GetKeyState, CapLck, CapsLock, P 
if (CapLck == "D") { 
some statement 
} 

dieser

GetKeyState, CapLck, CapsLock, T 
if (CapLck == 1) { 
some statement 
} 

zu ändern, wenn ich die GetKeyState Dokumentation vor, die Parameter T prüft lesen, wenn CapsLock aktiviert ist oder nicht. Wenn aktiviert, gibt es 1 für wahr zurück; 0 für falsch.

Leider gelten meine Änderungen nicht und es funktioniert nicht. Irgendwelche Ideen?

Danke.

Antwort

0

Um zu überprüfen, ob CapsLock aktiviert ist oder einfach nicht ändern

GetKeyState, CapLck, CapsLock, P 
if (CapLck == "D") { 
some statement 
} 

zu

GetKeyState, CapLck, CapsLock, T 
if (CapLck == "D") { 
some statement 
} 

Im Gegensatz zur AutoHotKey Dokumentation der Parameter T gibt "D" für nicht wahr 1 zurück.

0

Versuchen Sie folgendes:

#If GetKeyState("CapsLock", "T") ; If Capslock is On 
    a::MsgBox % "CAPSLOCK IS ON" 
#If 

a::MsgBox % "CAPSLOCK IS OFF" 
+0

Ich bin nicht sicher, wie man das umsetzt. So was? #If GetKeyState ("CapsLock", "T"); Wenn Capslock aktiviert ist Cnt: = 60 – piguy