Mit Mausrad Zahlen 1 bis 0 auswählen (klicken) Topic is solved

Stelle Fragen zur Automatisierung von Spielen

Moderator: jNizM

razorzh
Posts: 18
Joined: 11 Feb 2022, 07:44

Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

21 Apr 2022, 07:55

Hallo,

Ich versuche mein Mausrad dafür zu verwenden um Zahlen von 1 - 0 schreiben.

Beim hoch scrollen, soll entsprechend die nächste Zahl geschrieben werden und beim runter scrollen, die vorherige.

Jetzt soll das Skript aber beim Runterscrollen bei 1 aufhören und beim Hochscrollen scrollen bei 0 aufhören und wenn ich manuell die 5 schreibe oder ich einfach direkt bis 5 gescrollt habe, soll das Skript auch noch 1 min danach wissen, dass 5 vorher geschrieben oder gescrollt wurde und entsprechend beim Hochscrollen 6 schreiben und beim Runterscrollen 4.

Geht das?

das ist mein bisheriger Code

Code: Select all

 variable:=0
 
WheelDown::
variable-- ; subtract 1 from the variable
If variable<0
   variable:=9
Send %variable%
return
 
WheelUp::
variable++ ; add 1 to the variable
If variable>9
   variable:=0
Send %variable%
return
Last edited by razorzh on 21 Apr 2022, 12:53, edited 1 time in total.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

21 Apr 2022, 08:27

Code: Select all

#SingleInstance, Force
var:=0

~WheelUp::	ToolTip % var := (var>=10) ? 0 : ++var
~WheelDown::ToolTip % var := (var<=1)  ? 1 : --var
~MButton::	
			ToolTip
			Send % var
			Return
razorzh
Posts: 18
Joined: 11 Feb 2022, 07:44

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

21 Apr 2022, 12:55

mit auswählen meinte ich schon schreiben und nicht nur ein Symbol zeigen. Außerdem hört das Skript bei 1 zwar auf, aber nicht bei 0 und wenn ich 5 drücke/schreibe, macht der auch nicht bei 6 weiter.
Rohwedder
Posts: 7655
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

22 Apr 2022, 00:51

Hallo,
dann:

Code: Select all

variable := 1
Loop, 9
{
	Hotkey, ~%A_Index%, Ziffer
	Hotkey, ~Numpad%A_Index%, Ziffer
}
WheelDown::Send,% variable := Max(1,--variable)
WheelUp::Send,% SubStr(variable := Min(10,++variable),0)
~Numpad0::
~0::variable := 10
Ziffer:
variable := SubStr(A_ThisHotkey,0)
Return
razorzh
Posts: 18
Joined: 11 Feb 2022, 07:44

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

22 Apr 2022, 12:53

Hallo,

der code so

Code: Select all

variable := 1
Loop, 9
{
	Hotkey, ~%A_Index%, Ziffer
	Hotkey, ~Numpad%A_Index%, Ziffer
}
WheelDown::Send,% variable := Max(1,--variable)
WheelUp::Send,% SubStr(variable := Min(10,++variable),0)
~Numpad0::
~0::variable := 10
Ziffer:
variable := SubStr(A_ThisHotkey,0)
Return
funktioniert wie beschrieben. Jetzt brauche ich es für eine Application, bei der ich SHIFT drücke um die gedrückten Nummern zu stacken. Also Wenn ich SHIFT gedrückt halte und dann 1 + 2 auswähle, habe ich 1 und 2 ausgewählt.

Das funktioniert so mit dem Code nicht. Ich bin hingegangen und habe ein * eingefügt, dadurch hat die Application aber nicht mehr beide ausgewählt durch das SHIFT drücken. Also ganz normal nur 2 ausgewählt, nachdem ich von 1 hoch bin (ich gehe davon aus, dass im Hintergrund SHIFT dann bei Autohotkey einfach ignoriert wurde, das aber dann über die Application hinaus so gemacht wird und dort dann auch ignoriert wird).

Dann habe ich zwei extra Zeilen eingefügt:

Code: Select all

+WheelDown::Send,% variable := Max(1,--variable)
+WheelUp::Send,% SubStr(variable := Min(10,++variable),0)
direkt unter den Zeilen

Code: Select all

WheelDown::Send,% variable := Max(1,--variable)
WheelUp::Send,% SubStr(variable := Min(10,++variable),0)
und es funktioniert, aber es funktioniert nur sehr schlecht und ich kann noch kein Muster erkennen wann es so funktioniert und wann nicht. Es funktioniert so aber nur bei rund 1% und wenn ich es extrem langsam mache.
Rohwedder
Posts: 7655
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

23 Apr 2022, 02:13

Also Obiges nur mit gedrückte Shifttaste.
Leider sind Shift+Ziffernblocktasten ein Griff ins Windowsklo
https://ahkde.github.io/docs/KeyList.htm#numpad
und erfordern eine Sonderbehandlung.
Versuch mal:

Code: Select all

variable := 1
NumPad := ["End","Down","PgDn","Left","Clear","Right","Home","Up","PgUp"]
Loop, 9
{
	Hotkey, +%A_Index%, Ziffer
	Hotkey,% Key := "Numpad" Numpad[A_Index], Numpad
	NumPad[Key] := A_Index
}
+WheelDown::Send,% variable := Max(1,--variable)
+WheelUp::Send,% SubStr(variable := Min(10,++variable),0)
NumpadIns::
+0::Send,% ("0", variable := 10)
Ziffer:
Send,% variable := SubStr(A_ThisHotkey,0)
Return
Numpad:
Send,% variable := NumPad[A_ThisHotkey]
Return
Guest

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

23 Apr 2022, 02:33

auch das hatte ich so probiert. nur mit SHIFT-Taste. an sich funktioniert das drücken der Tasten auch nach wie vor einwandfrei und das auch mit dem vorherigen Code ohne SHIFT Berücksichtigung. Aber die SHIFT Funktion in der Application stacked die Nummern und egal welchen der beiden Codes ich verwende, es ist sehr unzuverlässig.

Also meistens klappt es eher nicht und das Muster wann es mal klappt und mal nicht, lässt sich nicht erkennen.

Manuelles halten der SHIFT-Taste und dann drücken der Nummern funktioniert einwandfrei
razorzh
Posts: 18
Joined: 11 Feb 2022, 07:44

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

23 Apr 2022, 03:00

aber auch nicht falsch verstehen. Ich suche schon beide Möglichkeiten. Also normales Drücken so wie der Code es macht. Nur wenn ich in der Application bin, dass beim Scrollen trotzdem gestackt wird. Als ob ich normal SHIFT gedrückt halte und dann die Nummern 1 - 0 drücke und die dann alle ausgewählt werden.

Das einzelnd Auswählen (Zahlen durchs Scrollen ohne SHIFT) soll dabei aber nicht verschwinden
Rohwedder
Posts: 7655
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

23 Apr 2022, 03:42

Das mit dem "stacken" verstehe ich nicht. Ich bin kein Spieler.
Autohotkey klemmt sich zwischen die Bedienelemente (Tastatur, Maus, Joystick ..) und deine Applikation.
Z.B.:

Code: Select all

+q::Send, w
Wenn du Shift+q drückst maskiert Autohotkey dies und läßt die Applikation glauben, du drücktest w ohne Shift.
Also, immer genau definieren! Input: Was du machts - Output: Was die Applikation glauben soll, daß du es machst.
Wie die Applikation dann darauf reagiert, z.B. Drachen töten oder Kranke heilen, ist für das Skript ohne Belang.
Die Hotkeys meiner letzten Version reagieren nur, wenn du Shift drückst, verstecken dieses Shift jedoch vor der Applikation.
razorzh
Posts: 18
Joined: 11 Feb 2022, 07:44

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

23 Apr 2022, 04:05

Rohwedder wrote:
23 Apr 2022, 03:42
Das mit dem "stacken" verstehe ich nicht. Ich bin kein Spieler.
Autohotkey klemmt sich zwischen die Bedienelemente (Tastatur, Maus, Joystick ..) und deine Applikation.
Z.B.:

Code: Select all

+q::Send, w
Wenn du Shift+q drückst maskiert Autohotkey dies und läßt die Applikation glauben, du drücktest w ohne Shift.
Also, immer genau definieren! Input: Was du machts - Output: Was die Applikation glauben soll, daß du es machst.
Wie die Applikation dann darauf reagiert, z.B. Drachen töten oder Kranke heilen, ist für das Skript ohne Belang.
Genau das ist das Problem. Also..

das Spiel lässt über 1 - 0 Einheiten auswählen. Wenn man SHIFT gedrückt hält, dann lassen sich mehrere Nummern (EInheiten auf den Nummern) gleichzeitig auswählen. Im Spiel hält man SHIFT gedrückt und drückt zum Bespiel 1 und 2 nacheinander und dann sind die Einheiten auf 1 und 2 ausgewählt.

Bei dem zweitletzten Code denkt das Spiel, dass Shift nicht gedrückt wird. Genau das Soll nicht passieren. Das Spiel muss weiterhin wissen, dass SHIFT gedrückt wird, aber wenn ich SHIFT drücke, sollen nach wie vor die Zahlen 1 - 0 gewählt werden über AHK beim Scrollen und nicht die Symbole wie Windows es normal machen würde.

Und beim allerletzten Code mit + vor WheelDown und WheelUP, ist es im SPiel letztendlich genau das gleiche was passiert. Also das Spiel erkennt das Shift drücken überhaupt nicht mehr und sieht nur die Zahlen, die gedrückt werden. Als ob ich ganz normal 1,2,3,4 manuelle drücke.

Da im Spiel bei Drücken von SHIFT und Nummer trotzdem die Einheiten auswählt, aber zusätzlich die Einheiten auf den Nummern aufsummiert wenn ich SHIFT gedrückt halte (zum Beispiel 1 und 2), suche ich nach einer Lösung, bei der im Spiel die Shift-Funktion nicht überschrieben wird, also wahrscheinlich in AHK komplett ignoriert wird. Denn so wie ich vermute das der Code funktioniert, können alle Modifier normal geklickt werden und die Zahlen kommen trotzdem.

Die Funktion von SHIFT muss also ausgenommen davon sein oder?

Ich hoffe es ist verständlicher
Rohwedder
Posts: 7655
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)  Topic is solved

23 Apr 2022, 04:59

Jetzt alle Modifikatoren, also auch Shift, durchgereicht. Das Ziffernblockzeugs habe ich gelöscht:

Code: Select all

variable := 1
Loop, 9
	Hotkey, ~*%A_Index%, Ziffer
Return
*WheelDown::Send,% "{Blind}" variable := Max(1,--variable)
*WheelUp::Send,% "{Blind}" SubStr(variable := Min(10,++variable),0)
~*0::variable := 10
Ziffer:
variable := SubStr(A_ThisHotkey,0)
Return
razorzh
Posts: 18
Joined: 11 Feb 2022, 07:44

Re: Mit Mausrad Zahlen 1 bis 0 auswählen (klicken)

23 Apr 2022, 06:35

funktioniert perfekt! Danke!!

Return to “Spiele”

Who is online

Users browsing this forum: No registered users and 90 guests