Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Keyboard remap wenn rechte Maustaste gedrückt ist


  • Please log in to reply
19 replies to this topic
elazul
  • Members
  • 11 posts
  • Last active: Jul 04 2013 11:42 PM
  • Joined: 08 May 2013

Hallo zusammen

 

ich weiss nicht ob ich hier richtig bin aber ich habe eine Frage.

Ist es möglich Tasten auf der Tastatur zu remappen während ich die rechte Maustaste gedrückt halte?

 

Beispiel:

Wenn ich die rechte Maustaste gedrückt halte wird aus dem A Key ein Q Key und aus dem D Key ein E Key,

sobald ich aber die rechte Maustaste wieder los lasse wird die A Taste wieder A und die D Taste wieder D.



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Dafür gibt es den #If Befehl siehe deutsche Hilfe.

Er aktiviert Hotkeys nur wenn eine bestimmte Bedingung erfüllt ist.

z.B.

#If GetKeyState("RButton") ;Bestimmt ob rechte Maustaste gedrückt wird. 
a::Send, q
d::send, e 

Visit the new forum ahkscript.org.

http://ahkscript.org


elazul
  • Members
  • 11 posts
  • Last active: Jul 04 2013 11:42 PM
  • Joined: 08 May 2013

Vielen Dank ich versuche das gleich mal



elazul
  • Members
  • 11 posts
  • Last active: Jul 04 2013 11:42 PM
  • Joined: 08 May 2013

Wenn ich den Editor aufmache funktioniert das einwandfrei aber wenn ich das im Spiel teste geht es nicht, an was könnte das liegen?



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Je nachdem wie das Spiel Programmiert ist ist es in der Lage nicht physische Tastenklicks zu Ignorieren.

Versuch es mal mit SendInput anstatt Send.


Visit the new forum ahkscript.org.

http://ahkscript.org


elazul
  • Members
  • 11 posts
  • Last active: Jul 04 2013 11:42 PM
  • Joined: 08 May 2013

auch mit SendInput oder SendPlay geht es nicht. Schade ich dachte schon ich hätte endlich eine Lösung gefunden für das Problem :)



elazul
  • Members
  • 11 posts
  • Last active: Jul 04 2013 11:42 PM
  • Joined: 08 May 2013

Ich bin der Lösung etwas näher gekommen

 

#If GetKeyState("RButton") ;Bestimmt ob rechte Maustaste gedrückt wird.
a::Send, {q down}
d::Send, {e down}

 

so funktioniert es, allerdings bleiben die tasten q oder e gedrückt.



Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Ja, weil ein entsprechendes {q up} und {e up} fehlt aber ich weiß nicht ob das so funktionieren würde oder ob das Signal dann zu kurz ist:

#If GetKeyState("RButton") ;Bestimmt ob rechte Maustaste gedrückt wird.
a::Send, {q down}{q up}
d::Send, {e down}{e up}

Find the recent autohotkey version here: ahkscript.org


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
#If GetKeyState("RButton") ;Bestimmt ob rechte Maustaste gedrückt wird.
a::Send, {q down}
d::Send, {e down}
a up::Send, {q up}
d up::Send, {q up}

Visit the new forum ahkscript.org.

http://ahkscript.org


Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

logisch, hätte ich doch selbst drauf kommen können.

wäre ja auch blöd wenn man die taste gedrückt hält und trotzdem nur ein ganz kurzer tastendruck gesendet wird. happy.png


Find the recent autohotkey version here: ahkscript.org


elazul
  • Members
  • 11 posts
  • Last active: Jul 04 2013 11:42 PM
  • Joined: 08 May 2013

Das sieht schon ganz gut aus :)

 

Jetzt wäre da nur noch eins, wenn ich die Rechte Maustaste los lasse bevor ich den A oder D key los lasse bleibt es immer noch hängen.

Ansonsten klappt es wunderbar so weit :)



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Das ist aber noch nicht perfekt. grin.png

Ich bin geadae dabei.

#If GetKeyState("RButton") ;Bestimmt ob rechte Maustaste gedrückt wird.
a::
Send, {q down}
a:=1
return
d::
Send, {e down}
d:=1
return
a up::
Send, {q up}
a:=0
return
d up::
Send, {e up}
d:=0
return
#If !GetKeyState("RButton")
a up::
if a
Send, {q up}
a:=0
return
d up::
if d
Send, {e up}
d:=0
return

Visit the new forum ahkscript.org.

http://ahkscript.org


elazul
  • Members
  • 11 posts
  • Last active: Jul 04 2013 11:42 PM
  • Joined: 08 May 2013

Jetzt geht irgendwie gar nichts mehr happy.png gibt es nicht ein Befehl indem ich den Script quasi Resette wenn ich die rechte Maustaste wieder los lasse?



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Ok stimmt #If kann man so nicht benutzen ist ja eine Präprozessor Direktive.

Nein so einfach geht es dann leider nicht mehr.

Du musst dir merken ob eine Taste gedrückt wurde oder nicht.

Das Skript wird dann komplizierter so wie ich es oben gemacht habe.

Ich passe es noch an.


Visit the new forum ahkscript.org.

http://ahkscript.org


elazul
  • Members
  • 11 posts
  • Last active: Jul 04 2013 11:42 PM
  • Joined: 08 May 2013
Ich habe gestern Abend noch rumexperimentiert es ist aber nix dabei raus gekommen. Ich bin wohl nicht der geborene Programmierer :)
Ich wollte diesen Scrpt schon seit einiger Zeit um gewisse spiele mit schlechten Steuerungen anzupassen.
Es sollte mir nur jeweils die A und D Taste umschalten während die rechte Maustaste gedrückt ist, egal in welcher Reihenfolge ich das aktiviere und sofort wieder umschalten wenn ich die rechte Maustaste los lasse, auch wenn ich noch die A oder D Taste gedrückt halte.
Kann mir jemand einen Script dafür erstellen?