|
You last visited: Today at 14:10
Advertisement
Bitte um Hilfe bei While Schleife
Discussion on Bitte um Hilfe bei While Schleife within the AutoIt forum part of the Coders Den category.
04/13/2014, 19:55
|
#1
|
elite*gold: 0
Join Date: May 2011
Posts: 138
Received Thanks: 31
|
Bitte um Hilfe bei While Schleife
Hallo alle miteinander,
vorweg mal gesagt, das ich Anfänger bin und mich noch nicht richtig auskenne. Hier mein Skript:
PHP Code:
; Hotkeys Start Global $Paused HotKeySet("{PAUSE}", "TogglePause") HotKeySet("{END}", "Terminate")
Func TogglePause() $Paused = NOT $Paused While $Paused sleep(100) ToolTip("Script is Paused",1170, 989) WEnd ToolTip("Script is Running",1170, 989) EndFunc
Func Terminate() Exit 0 EndFunc ; Hotkeys End While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit ; Startbutton Start Case $StartPause MsgBox(0, "Starten", "Das Programm wird nun ausgeführt!") Run("PROGRAMM") WinWaitActive("FENSTERNAME","",@SW_SHOWMAXIMIZED) Sleep(50) MouseClick("left", 191, 42) Sleep(50) Send("URL") Sleep(50) Send("{ENTER}") WinWaitActive("FENSTERNAME") MouseClick("left", 878, 404) Sleep(50) MouseClick("left", 878, 404) Sleep(2000) MouseClick("left", 624, 123) Sleep(1000) MouseClick("left", 834, 389) Sleep(1000) MouseClick("left", 339, 494) Sleep(1000) MouseClick("left", 354, 521) Sleep(1000) MouseClick("left", 622, 102) Sleep(1500) MouseWheel("down", 4) Sleep(500)
$Variable1 = PixelSearch(830,300,832,302,0x8B0121)) If IsArray($Variable1) = True Then MouseWheel("up", 4) Sleep(1000) MouseClick(323, 249) Sleep(1500) Else
MouseClick("left", 1073, 450) Sleep(400)
MouseClick("left", 1073, 480) Sleep(400)
MouseClick("left", 1073, 510) Sleep(400)
MouseClick("left", 1073, 540) Sleep(400)
MouseClick("left", 1073, 570) Sleep(400)
MouseClick("left", 1073, 600) Sleep(400)
MouseClick("left", 1073, 630) Sleep(400)
MouseClick("left", 1073, 660) Sleep(400)
MouseClick("left", 1073, 690) Sleep(400)
MouseClick("left", 1073, 720) Sleep(400)
MouseClick("left", 1073, 750) Sleep(400)
MouseClick("left", 1073, 780) Sleep(400)
MouseClick("left", 1073, 810) Sleep(400)
MouseClick("left", 1073, 840) Sleep(400)
MouseClick("left", 1073, 870) Sleep(400)
MouseClick("left", 673, 896) Sleep(1000)
EndIf WEnd
; Startbutton End EndSwitch WEnd
Bis zur While 2 ist alles gut,
ab da an bekomme ich Probleme (funktioniert nicht so wie ich möchte)
Also,
ich möchte gerne das der Bot standardmäßig die bestimmten Klicks nach dem Else ausführt. Dies tut er noch. Dann möchte ich, wenn eine Bestimmte Farbe auftaucht, das er Hochscrollt und die Seite wechselt und dann wieder mit den standardmäßigen Klicks weitermacht.
Kurz:
1. Klicke solange bis Farbe x erscheint.
2. Wenn Farbe x erscheint, scrolle hoch und wechsel Seite.
3. Fahre mit Punkt 1. fort.
Gerne darf auch das darüberliegende angepasst werden wenn Ihr mir erklärt wieso (macht mich schlauer)
Vielen Dank schonmal für die Hilfe!
Greetz
|
|
|
04/13/2014, 20:01
|
#2
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
die 2 schleife wird nie verlassen was bringt dir der code dadrunter ?
1 while schleife sollte reichen
|
|
|
04/13/2014, 20:04
|
#3
|
elite*gold: 0
Join Date: May 2011
Posts: 138
Received Thanks: 31
|
Wie gesagt ich bin neu und habe mich gestern mal eingelesen.
Wäre nett wenn du das mal verbessern würdest wie du es schreiben würdest
Ich dachte man muss dann ne 2. while anfangen
So besser?
PHP Code:
; Hotkeys Start Global $Paused HotKeySet("{PAUSE}", "TogglePause") HotKeySet("{END}", "Terminate")
Func TogglePause() $Paused = NOT $Paused While $Paused sleep(100) ToolTip("Script is Paused",1170, 989) WEnd ToolTip("Script is Running",1170, 989) EndFunc
Func Terminate() Exit 0 EndFunc ; Hotkeys End While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit ; Startbutton Start Case $StartPause MsgBox(0, "Starten", "Das Programm wird nun ausgeführt!") Run("PROGRAMM") WinWaitActive("FENSTERNAME","",@SW_SHOWMAXIMIZED) Sleep(50) MouseClick("left", 191, 42) Sleep(50) Send("URL") Sleep(50) Send("{ENTER}") WinWaitActive("FENSTERNAME") MouseClick("left", 878, 404) Sleep(50) MouseClick("left", 878, 404) Sleep(2000) MouseClick("left", 624, 123) Sleep(1000) MouseClick("left", 834, 389) Sleep(1000) MouseClick("left", 339, 494) Sleep(1000) MouseClick("left", 354, 521) Sleep(1000) MouseClick("left", 631, 102) Sleep(1500) MouseWheel("down", 4) Sleep(500)
$color = PixelSearch(830,300,832,302,0x8B0121) If IsArray($color) = True Then MouseWheel("up", 4) Sleep(1000) MouseClick(323, 249) Sleep(1500) Else
MouseClick("left", 1073, 450) Sleep(400)
MouseClick("left", 1073, 480) Sleep(400)
MouseClick("left", 1073, 510) Sleep(400)
MouseClick("left", 1073, 540) Sleep(400)
MouseClick("left", 1073, 570) Sleep(400)
MouseClick("left", 1073, 600) Sleep(400)
MouseClick("left", 1073, 630) Sleep(400)
MouseClick("left", 1073, 660) Sleep(400)
MouseClick("left", 1073, 690) Sleep(400)
MouseClick("left", 1073, 720) Sleep(400)
MouseClick("left", 1073, 750) Sleep(400)
MouseClick("left", 1073, 780) Sleep(400)
MouseClick("left", 1073, 810) Sleep(400)
MouseClick("left", 1073, 840) Sleep(400)
MouseClick("left", 1073, 870) Sleep(400)
MouseClick("left", 673, 896) Sleep(1000) EndIf ; Startbutton End EndSwitch WEnd
|
|
|
04/13/2014, 21:44
|
#4
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by DaSHiFTeR
Wie gesagt ich bin neu und habe mich gestern mal eingelesen.
Wäre nett wenn du das mal verbessern würdest wie du es schreiben würdest
Ich dachte man muss dann ne 2. while anfangen
So besser?
PHP Code:
; Hotkeys Start
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{END}", "Terminate")
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip("Script is Paused",1170, 989)
WEnd
ToolTip("Script is Running",1170, 989)
EndFunc
Func Terminate()
Exit 0
EndFunc
; Hotkeys End
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
; Startbutton Start
Case $StartPause
MsgBox(0, "Starten", "Das Programm wird nun ausgeführt!")
Run("PROGRAMM")
WinWaitActive("FENSTERNAME","",@SW_SHOWMAXIMIZED)
Sleep(50)
MouseClick("left", 191, 42)
Sleep(50)
Send("URL")
Sleep(50)
Send("{ENTER}")
WinWaitActive("FENSTERNAME")
MouseClick("left", 878, 404)
Sleep(50)
MouseClick("left", 878, 404)
Sleep(2000)
MouseClick("left", 624, 123)
Sleep(1000)
MouseClick("left", 834, 389)
Sleep(1000)
MouseClick("left", 339, 494)
Sleep(1000)
MouseClick("left", 354, 521)
Sleep(1000)
MouseClick("left", 631, 102)
Sleep(1500)
MouseWheel("down", 4)
Sleep(500)
$color = PixelSearch(830,300,832,302,0x8B0121)
If IsArray($color) = True Then
MouseWheel("up", 4)
Sleep(1000)
MouseClick(323, 249)
Sleep(1500)
Else
MouseClick("left", 1073, 450)
Sleep(400)
MouseClick("left", 1073, 480)
Sleep(400)
MouseClick("left", 1073, 510)
Sleep(400)
MouseClick("left", 1073, 540)
Sleep(400)
MouseClick("left", 1073, 570)
Sleep(400)
MouseClick("left", 1073, 600)
Sleep(400)
MouseClick("left", 1073, 630)
Sleep(400)
MouseClick("left", 1073, 660)
Sleep(400)
MouseClick("left", 1073, 690)
Sleep(400)
MouseClick("left", 1073, 720)
Sleep(400)
MouseClick("left", 1073, 750)
Sleep(400)
MouseClick("left", 1073, 780)
Sleep(400)
MouseClick("left", 1073, 810)
Sleep(400)
MouseClick("left", 1073, 840)
Sleep(400)
MouseClick("left", 1073, 870)
Sleep(400)
MouseClick("left", 673, 896)
Sleep(1000)
EndIf
; Startbutton End
EndSwitch
WEnd
|
Code:
MouseClick("left", 1073, 450)
Sleep(400)
MouseClick("left", 1073, 480)
Sleep(400)
MouseClick("left", 1073, 510)
Sleep(400)
MouseClick("left", 1073, 540)
Sleep(400)
MouseClick("left", 1073, 570)
Sleep(400)
MouseClick("left", 1073, 600)
Sleep(400)
MouseClick("left", 1073, 630)
Sleep(400)
MouseClick("left", 1073, 660)
Sleep(400)
MouseClick("left", 1073, 690)
Sleep(400)
MouseClick("left", 1073, 720)
Sleep(400)
MouseClick("left", 1073, 750)
Sleep(400)
MouseClick("left", 1073, 780)
Sleep(400)
MouseClick("left", 1073, 810)
Sleep(400)
MouseClick("left", 1073, 840)
Sleep(400)
MouseClick("left", 1073, 870)
Sleep(400)
zu
Code:
$zahl = 420
For $i = 1 To 15
$zahl += 30
MouseClick("left",1073,$zahl)
sleep(400)
Next
|
|
|
04/13/2014, 21:54
|
#5
|
elite*gold: 0
Join Date: May 2011
Posts: 138
Received Thanks: 31
|
Code:
$zahl = 420
For $i = 1 To 15
$zahl += 30
MouseClick("left",1073,$zahl)
sleep(400)
Next
[/QUOTE]
Vielen Dank 
Als was muss ich denn $i definieren?
Greetz
|
|
|
04/13/2014, 22:29
|
#6
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Quote:
Originally Posted by DaSHiFTeR
Code:
$zahl = 420
For $i = 1 To 15
$zahl += 30
MouseClick("left",1073,$zahl)
sleep(400)
Next
Vielen Dank 
Als was muss ich denn $i definieren?
Greetz
|
$i wird mit der For Schleife deklariert und als 1 definiert.
|
|
|
04/13/2014, 22:57
|
#7
|
elite*gold: 0
Join Date: May 2011
Posts: 138
Received Thanks: 31
|
Quote:
Originally Posted by Requi
$i wird mit der For Schleife deklariert und als 1 definiert.
|
Vielen Dank!
Habe ich gemacht und funktioniert super!
Ich habe die While jetzt mal in eine Do Until umgeschrieben.
Das was noch immer nicht funktioniert ist der PixelSearch. Kann da wer helfen?
Hier mal das neue Skript:
Code:
Global $color
Global $i = 1
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
.
.
.
Do
$zahl = 420
For $i = 1 To 15
$zahl += 30
MouseClick("left",1073,$zahl)
sleep(400)
Next
MouseClick("left", 673, 896)
Sleep(1000)
Until $color = PixelSearch(849,300,"","",9240865)
MouseWheel("up", 4)
Sleep(1000)
MouseClick(323, 249)
Sleep(1500)
; Startbutton End
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Hier mal ne andere Variante vom PixelSearch! Ich habs auch schon mit einer Global Variable versucht aber will einfach nicht hinhauen.
Code:
Until $color = PixelSearch(310,263,1124,344,0x99FFFF)
If IsArray ($color) = True Then
MouseWheel("up", 4)
Sleep(1000)
MouseClick(323, 249)
Sleep(1500)
EndIf
|
|
|
04/14/2014, 00:30
|
#8
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
befindet sich der auftauchende pixel denn an einer festen position?
in dem falle sollte natürlich pixelgetcolor verwendet werden.
Edit:
btw du prüfst am ende deiner do schleife, ob $color (bei dir als False definiert) gleich der rückgabe von pixelsearch (gibt ein array aus) ist.
das solltest du vllt nochmal genau durchdenken :P
|
|
|
04/14/2014, 00:51
|
#9
|
elite*gold: 0
Join Date: May 2011
Posts: 138
Received Thanks: 31
|
Quote:
Originally Posted by lolkop
befindet sich der auftauchende pixel denn an einer festen position?
in dem falle sollte natürlich pixelgetcolor verwendet werden.
Edit:
btw du prüfst am ende deiner do schleife, ob $color (bei dir als False definiert) gleich der rückgabe von pixelsearch (gibt ein array aus) ist.
das solltest du vllt nochmal genau durchdenken :P
|
Ich habs jetzt mal mit PixelGetColor versucht. Hat auch nicht geklappt!
Ich hab diesen Befehl schon überall hinverschoben und überall funktioniert er nicht.
|
|
|
04/14/2014, 00:57
|
#10
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by DaSHiFTeR
Ich habs jetzt mal mit PixelGetColor versucht. Hat auch nicht geklappt!
Ich hab diesen Befehl schon überall hinverschoben und überall funktioniert er nicht.
|
wie genau sieht denn deine bedingung aus (unabhängig vom code)?
wann taucht wo, was für ein pixel auf?
am besten mit beispiel bild.
|
|
|
04/14/2014, 18:04
|
#11
|
elite*gold: 0
Join Date: May 2011
Posts: 138
Received Thanks: 31
|
Quote:
Originally Posted by lolkop
wie genau sieht denn deine bedingung aus (unabhängig vom code)?
wann taucht wo, was für ein pixel auf?
am besten mit beispiel bild.
|
Hey, auch mit deinem Code hat es nicht funktioniert... Ich weis echt nicht weiter :P
|
|
|
04/14/2014, 18:10
|
#12
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by DaSHiFTeR
Hey, auch mit deinem Code hat es nicht funktioniert... Ich weis echt nicht weiter :P
|
"funktioniert nicht" ist immer eine perfekte fehlerbeschreibung...
der code von mir war nur ein beispiel für einen gut strukturierten code. das du diesen für deine bedürfnisse anpassten musst, ist klar.
|
|
|
04/14/2014, 19:33
|
#13
|
elite*gold: 0
Join Date: May 2011
Posts: 138
Received Thanks: 31
|
Quote:
Originally Posted by lolkop
"funktioniert nicht" ist immer eine perfekte fehlerbeschreibung...
der code von mir war nur ein beispiel für einen gut strukturierten code. das du diesen für deine bedürfnisse anpassten musst, ist klar.
|
Ich hab echt krasse Eklärungsschwierigkeiten!! Weis nicht wie ich mein Problem beschreiben soll. -.-
|
|
|
04/14/2014, 21:33
|
#14
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
würde schonmal reichen wenn du wüsstest was die ganzen funktionen machen die du da rein schreibst
|
|
|
 |
Similar Threads
|
Fehler suche (Anfangsprogramm) If schleife in einer If-Schleife
10/16/2013 - .NET Languages - 8 Replies
Wie mache ich eine If-Schleife in einer if-schleife?
Danke^^
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
|
Vb.net kleine Schleife hilfe^^
08/26/2013 - .NET Languages - 3 Replies
Joa, bräucht mal Hilfe.
Geht mehr um den mathematischen Teil:
For Schreiben As Integer = 0 To Passwort.Length - 1
'Anweisungen
Me.BeginInvoke(DirectCast(AddressOf Steigerung, Action(Of Double)), (1 / (Passwort.Length - 1)) * 50)
Next
For x As Integer = 0 To Konventschl.Count - 1
'Anweisungen
|
[HILFE] If-Schleife
12/29/2010 - AutoIt - 13 Replies
Nacht Com,
ALsoo^^ hab da bissl an nem skript rumgespielt. komme jz aber nicht mehr weiter. Undzwar hab ich nen Ladebalken. Wenn dieser vollgeladen ist soll eine MsgBox erscheinen. Jz komm ich nicht weiter (If-Schleifen sind nicht mein ding^^) Bitte um Hilfe. Pls nicht lachen oda dumme Kommis geben. THX
|
Hilfe bei der autoit while schleife
03/05/2010 - Metin2 - 7 Replies
Hallo,
also ich habe ein problem und weiß nicht wie ich das lösen kann :(
ich will einen Multihack machen für metin2
aber wenn ich eine value freezen muss dann mache ich eine while schleife und dann kann man keinen anderen Button mehr aktivieren :(
z.B. (ein anderes von mit erstelltes programm)
Code:
|
All times are GMT +1. The time now is 14:11.
|
|