Page 1 of 1

sleep ersetzen ? AHK multiaufgaben

Posted: 10 May 2024, 10:50
by glnklein
:lol: heute bombardiere ich das Forum mal mit Problemen :lol:

ich habe diesen code ,er sorgt dafür das die maus nicht direkt an die gefunden Koordinaten bewegt wird sondern schön langsam .
Funktioniert auch gut , nur er bremst natürlich das komplette Skript aus da es ja Zeile für Zeile durchgearbeitet wird.
ist ahk in der Lage multiaufgaben zu erledigen ?

Code: Select all

				
				
				radius:=50
				x :=A_ScreenWidth/2
				y :=A_ScreenHeight/2-22 ; minus 22 weil die #taskleiste in Windows 11  22pixel hat
				
				PixelSearch, Px, Py,X-radius, Y-radius, X+radius, Y+radius, 0xFFFFFF, 1, FAST RGB
				f !ErrorLevel 
				{
				
				
				
					ergebnisx:=Px-x
					ergebnisy:=Py-y
					loopx :=ergebnisx/10
					loopy :=ergebnisy/10
					loop , 10
					{
					DllCall("mouse_event", "UInt", 0x01, "UInt", loopx, "UInt", loopy, uint, 100, int, 100) 
					sleep 1 ; das sleep bremst mir alles aus , noch nicht einmal mehr die maustasten werden angenommen
						
				
					}
				
				}	
				
				
				
				}

Re: sleep ersetzen ? AHK multiaufgaben  Topic is solved

Posted: 10 May 2024, 13:25
by Noitalommi_2
Hi.

Du könntest stattdessen MouseMove nutzen, das hat eine Option für die Geschwindigkeit.
Edit: Und nein, AHK kann kein Multitasking aber du kannst mit SetTimer so eine Art Pseudo-Multitasking kreieren.
Timer sind nützlich, weil sie asynchron laufen, d.h. sie werden in einem bestimmten Intervall (Frequenz) ausgeführt, egal ob das Skript gerade auf ein Fenster wartet, ein Dialogfenster anzeigt oder mit einer anderen Aufgabe beschäftigt ist.

Re: sleep ersetzen ? AHK multiaufgaben

Posted: 11 May 2024, 04:18
by just me

Code: Select all

					loop , 10
					{
					DllCall("mouse_event", "UInt", 0x01, "UInt", loopx, "UInt", loopy, uint, 100, int, 100) 
					sleep 1 ; das sleep bremst mir alles aus , noch nicht einmal mehr die maustasten werden angenommen
					}
Moin,

das Sleep, 1 pausiert für maximal 16 Millisekunden, wenn der Rechner nicht am Anschlag läuft. 10 * 16 sind 160 Millisekunden, d.h. 1/6 Sekunde. Wenn Du nicht in einem Spiel bist, wird das kaum stören, und wenn es doch um ein Spiel geht, gibt es dafür ein eigenes Forum.