Hallöchen,
leider bin ich komplett neu in der Welt von AutoHotkey und habe noch nicht so ganz den Durchblick.
Ich bin auf der Suche nach einem Makro, welches mir bei Tastendruck eine zweite Taste gedrückt hält.
Genauer gesagt geht es darum: Ich habe auf Shift gebindet, dass mein Character auf der Stelle stehen bleibt.
Auf der Taste 1 habe ich einen Skill gelegt welcher dann ununterbrochen gecastet werden soll.
Quasi müsste das Macro so funktionieren, dass es mir die Taste 1 permanent gedrückt hält sobald ich Shift drücke.
Entschuldigt du etwas umständliche Beschreibung
Edit: Hab jetzt ein bisschen rum gesucht und bin zu dem Entschluss gekommen.
Shift::
if (getkeystate("1"))
send,{1 up}
else
send,{1 down}
return
Passt das so? xD
Bei Tastendruck zweite Taste gedrückt halten
Moderator: jNizM
Re: Bei Tastendruck zweite Taste gedrückt halten
Im moment spammst du die Taste 1 einfach nur und hältst sie nicht gedrückt.
Wenn es für dich funktioniert sollte es klappen.
Wenn es für dich funktioniert sollte es klappen.
Recommends AHK Studio
Re: Bei Tastendruck zweite Taste gedrückt halten
Leider klappt es nicht und ich bin auch nicht weiter gekommen
Das Problem ist, dass ich Shift permanent gedrückt halten muss und dabei gleichzeitig noch
die Taste 1 gedrückt bleiben muss
Das Problem ist, dass ich Shift permanent gedrückt halten muss und dabei gleichzeitig noch
die Taste 1 gedrückt bleiben muss
Re: Bei Tastendruck zweite Taste gedrückt halten
Damit du korrekten Code erzeugen kannst musst du erstmal wissen welche Aktionen AutoHotkey ausführen kann.
Du kannst Tasten drücken und Loslassen.
Zudem kannst du Variablen setzen und vergleichen.
Je nachdem wie eine Variable gesetzt ist kannst du dann anderen Code ausführen. ;
Interessant wird es dann bei den HotKeys.
Ein Hotkey ist einfach nur ein Stück Code das ausgeführt wird sobald entsprechende Bedingungen für einen Tastendruck festgestellt werden. (z. B. Alt und Tab werden zusammen gedrückt).
Der korrekte Code wäre so etwas:
Es ist eigentlich fast das gleiche wie dein Code, bloß das dein code eventuell komisch reagieren kann.
Teste das am besten mal in einem Text Editor. Du darfst Shift aber nur einmal kurz drücken.
In kurz:
Wenn dieser Code in deinem Texteditor funktioniert aber nicht in deinem Spiel, dann musst du das Script eventuell als Administrator ausführen, oder eine andere Send Methode verwenden (siehe z. B. SendInput)
Du kannst Tasten drücken und Loslassen.
Zudem kannst du Variablen setzen und vergleichen.
Je nachdem wie eine Variable gesetzt ist kannst du dann anderen Code ausführen. ;
Interessant wird es dann bei den HotKeys.
Ein Hotkey ist einfach nur ein Stück Code das ausgeführt wird sobald entsprechende Bedingungen für einen Tastendruck festgestellt werden. (z. B. Alt und Tab werden zusammen gedrückt).
Der korrekte Code wäre so etwas:
Code: Select all
Shift:: ;wird ausgeführt wenn shift gedrückt wird
A := !A ;Der Variable A wird ein Wert zugewiesen nämlich das Ergebnis von !A
;!A ist ein Befehl der besteht aus zwei Teilen einmal dem ! was soviel wie nicht bedeutet
;der zweite Teil ist wieder die Variable A
;Das nicht bezieht sich auf das A. Die Linie sagt so viel wie "A wird zu nicht A", was in diesem Fall einfach nur dafür sorgt, dass A zwischen 1 und 0 hin und her wechselt
If (A) ;Wenn A 1 ist das Ergebnis dieses If wahr wenn es 0 ist dann falsch
Send {1 Down} ;Wenn A 1 ist dann wird die Taste 1 runtergedrückt
Else
Send {1 Up} ;Wenn A 0 ist dann wird die Taste 1 losgelassen
return
Teste das am besten mal in einem Text Editor. Du darfst Shift aber nur einmal kurz drücken.
In kurz:
Code: Select all
Shift::
If (A := !A)
Send {1 Down}
Else
Send {1 Up}
return
Recommends AHK Studio
Re: Bei Tastendruck zweite Taste gedrückt halten
Danke dir erstmal für deine Hilfe aber funktioniert leider nicht so wie ich es mir vorgestellt habe.
Das Problem an der Sache ist, dass ich Shift auch gedrückt halten muss im Spiel...nützt leider nichts wenn ich nur einmal Shift drücke und dann die 1 gehalten wird.
Das Problem an der Sache ist, dass ich Shift auch gedrückt halten muss im Spiel...nützt leider nichts wenn ich nur einmal Shift drücke und dann die 1 gehalten wird.
Re: Bei Tastendruck zweite Taste gedrückt halten
Ah OK
Du möchtest also, dass 1 und Shift gedrückt halten werden, während du Shift gedrückt hältst? Dann ist der Code einfacher.
Wie bereits gesagt gibt es gewisse Modifikatoren die das Verhalten von Hotkeys beeinflusst.
Normalerweise wird eine Taste die ein Hotkey ist von AutoHotkey abgefangen und nicht mehr weitergeschickt. Jedoch gibt es den Tilde Modifikator, mit dem man diese Taste auch durchlassen kann.
Zudem gibt es den UP Modifikator, der dafür sorgt, dass ein Hotkey ausgelöst wird, wenn eine Tastenkombination erst gedrückt wird und danach losgelassen wird.
(Siehe https://ragnar-f.github.io/docs/Hotkeys.htm#Symbols)
In deinem Fall könnte man diese Optionen benutzen um das zu erzeugen wie du es beschrieben hast:
Du möchtest also, dass 1 und Shift gedrückt halten werden, während du Shift gedrückt hältst? Dann ist der Code einfacher.
Wie bereits gesagt gibt es gewisse Modifikatoren die das Verhalten von Hotkeys beeinflusst.
Normalerweise wird eine Taste die ein Hotkey ist von AutoHotkey abgefangen und nicht mehr weitergeschickt. Jedoch gibt es den Tilde Modifikator, mit dem man diese Taste auch durchlassen kann.
Zudem gibt es den UP Modifikator, der dafür sorgt, dass ein Hotkey ausgelöst wird, wenn eine Tastenkombination erst gedrückt wird und danach losgelassen wird.
(Siehe https://ragnar-f.github.io/docs/Hotkeys.htm#Symbols)
In deinem Fall könnte man diese Optionen benutzen um das zu erzeugen wie du es beschrieben hast:
Code: Select all
~Shift::Send {1 Down} ;beim runterdrücken von Shift wird die 1 gedrückt und der Tastendruck Shift wird durchgelassen
~Shift UP::Send {1 Up} ;beim loslassen von Shift wird die 1 auch losgelassen und das Shift loslassen wird auch durchgelassen
Recommends AHK Studio