Hallo,
ich möchte ein Script das zum Beispiel nach dem man 10 mal die linke Taste gedrückt hat automatisch die Taste M drückt oder so.
wie könnte man das realisieren?
Hallo,
ich möchte ein Script das zum Beispiel nach dem man 10 mal die linke Taste gedrückt hat automatisch die Taste M drückt oder so.
wie könnte man das realisieren?
Mit _IsPressed() kannst du feststellen, ob eine Taste gedrückt wird.
Das in einer Schleife, in der du bei jedem Drücken eine Zählervariable um eins erhöhst.
Wenn Zählervariable den Max-Wert hat -> Schleife verlassen, 'M' ausgeben (Send)
ferddisch..
ah ok danke,
wie sieht das mit der zählervariable genau aus?
$n = 0
Do
Do
Sleep(100)
Until _IsPressed("Tastencode") ; siehe Hilfe
$n += 1
Until $n = 10
; M drücken oder was du willst
ah okay danke, finde aber die linke taste nicht für den ascii code
Hey, ich sagte: Lies die Hilfe zu _IsPressed(). Und dort findest du auch den Tastencode (ist kein ASCII) für die Pfeiltaste.
ich meine maustaste
so schaut das immo aus
[autoit]while 1
$n = 0
Do
Do
Sleep(100)
Until _IsPressed("01") ; siehe Hilfe
$n += 1
Until $n = 10
if $n=10 Then
send("{SPACE}")
EndIf
WEnd
[/autoit]Na siehste, Lesen bildet
Aber die Abfrage
If $n = 10 ist sinnlos, da die Do-Until-Schleife ja erst verlassen wird, wenn $n = 10 ist.
Und warum läuft das alles in einer While-Schleife? - Damit ist es endlos.
Edit: Habe den Eindruck, dass das ein Bot werden soll. Überzeug mich vom Gegenteil ansonsten ist hiermit Ende der Hilfestellung.
aso ok danke
ja weil das nach jedem 10 klick die leertaste drücken soll
hab jetzt doch noch ein problem, leider geht das nicht wenn man nicht selber die linke taste drückt oder hab ich da einen fehler gemacht?
[autoit]While 1
$coord = PixelSearch(444, 263, 990, 441, 0xC76567)
If IsArray($coord) = 1 Then
MouseClick('left', $coord[0], $coord[1], 1, 0)
EndIf
$n = 0
Do
Do
Until _IsPressed("01") ; siehe Hilfe
$n += 1
Until $n = 10
send("{SPACE}")
WEnd
[/autoit][autoit][/autoit][autoit][/autoit]Kann durchaus sein, dass der simulierte Mausklick nicht erkannt wird. Das hier erfüllt Deine ursprüngliche Fragestellung:
#include <Misc.au3>
[/autoit] [autoit][/autoit] [autoit]Local $ai_coord = -1
For $i = 1 To 10
$ai_coord = PixelSearch(444, 263, 990, 441, 0xC76567)
If IsArray($ai_coord) Then MouseClick("left", $ai_coord[0], $ai_coord[1], 1, 0)
Do
Sleep(50)
Until _IsPressed("01")
MsgBox(0, "Debug", "Clicked " & $i & " times...", 3)
Next
Send("{SPACE}")
@Mods: 3 Threads eröffnet, dreimal Verdacht bzw. klare Absicht eines Bots...
teh_hahn
deins versteh ich nicht so ganz
ja ich hab mal wieder das alte moorhuhn ausgepackt und da ich noch nicht so lange dabei bin wollte ich aus spaß sowas machen wieso ist das so schlimm?
Gerade bei Bots sollte man am Anfang klar sagen, was Sache ist. Nachdem die Fragestellung scheinbar wirklich zu Moorhuhn gehört (automatisches Nachladen), glaube ich nicht, dass irgendjemand ein größeres Problem damit hätte...
peethebe
Hi,
genau so siehts aus. Gegen einen Moorhuhnbot hab ich persönlich jetzt aber auch nichts auszusetzen. Einfach kurz zu Anfang erläutern, wozu das Ganze ist. Dann gibts auch keine Probleme!
Also, ich erklär Dir mal meinen Code:
#include <Misc.au3>
[/autoit] [autoit][/autoit] [autoit]Local $ai_coord = -1
While 1 ;~ Die Endlosschleife, da Du es ja die ganze Zeit ausführen möchtest.
For $i = 1 To 10 ;~ Zählt von 1 bis 10, ...
$ai_coord = PixelSearch(444, 263, 990, 441, 0xC76567) ;~ ... besorgt sich die X- und Y-Koordinaten und ...
If IsArray($ai_coord) Then MouseClick("left", $ai_coord[0], $ai_coord[1], 1, 0) ;~ ... führt einen Mausklick auf die Koordinaten aus (IsArray ist nur für den Falle eines Fehlers).
#region - Wartet bis die linke Maustaste gedrückt wurde (Vielleicht weglassen und nur durch Sleep(20) ersetzen...).
Do
Sleep(20)
Until _IsPressed("01")
#endregion
Next
Send("{SPACE}") ;~ Drückt einmal auf die Leertaste.
WEnd
alles klar mache ich das nächste mal,
ich hab aber gemerkt dass das mit dem bot net so klappt möchte nun das er nach 10 mausklicks die leertaste drückt dann hat man so eine art MG aber das klappt irgendiwie nicht er drückt die ganze zeit die leertaste
so sieht mein code aus
[autoit]
while 1
For $i = 1 To 10 ;~ Zählt von 1 bis 10, ...
MouseClick("left")
Do
Sleep(20)
Until _IsPressed("01")
Next
Send("{SPACE}")
wend
ui die schleifenverschachtelung schaut ja grauenhaft aus *lach*
[autoit]
while 1
For $i = 1 To 10
MouseClick("left")
Do
Sleep(20)
Until _IsPressed("01")
Next
Send("{SPACE}")
wend
also rein vom prinzip her müsste das funktionieren... ABER ... das Do ... Until kannst auch weglassen und nur den Sleep befehl schreiben... (glaub ich zumindest)
ok hab das jetzt so gemacht aber ich müsste jetzt noch irgendwie was einstellen das ich erst auf einen knopfdruck das laufen lasse
[autoit]while 1
For $i = 1 To 10
MouseClick("left")
Next
Send("{SPACE}")
wend
und wenn ich das manuell versuche drückt er schon nach dem ersten mausklick die die leertaste
[autoit]while 1
For $i = 1 To 10
_IsPressed("01")
Next
Send("{SPACE}")
wend
knopfdruck? - ne gui mit button oder wie?
ansonsten kannst du das auch mit hotkeys machen zB.:
[autoit]
HotKeySet("{F5}", "_hotkey")
While 1
Sleep(100)
WEnd
Func _hotkey()
while 1
For $i = 1 To 10
MouseClick("left")
Next
Send("{SPACE}")
wend
EndFunc
EDIT: alles natürlich nich getestet, weil ich hier keiin autoit zuigs drauf hab
achja genau
ne das problem ist ja bei den neuen moorhuhn versionen kann man schon nachladen bevor das magazin leer ist aber wenn man das tut werden einem die punkte abgezogen leider klappt der code nicht mir werden die ganze zeit punkte abgezogen