AutoIT Befehl gesucht If PixelGetColour then "nimm Zeile 3-5 aus dem Skript"

VXCK

Cadet 3rd Year
Registriert
Sep. 2018
Beiträge
47
Hallo zusammen,

ich suche einen Befehl, beziehungsweise wäre es gut zu wissen, ob das überhaupt funktioniert.

AutoIT soll wenn ein Pixel eine bestimmte Farbe einnimmt, mehrere Zeilen des Skripts rausnehmen, bzw. überspringen. Wenn der Pixel die Farbe nicht einnimmt, dann ganz normal fortfahren.

LG, Manu
 
Na dann poste mal Deinen Script bzw. was Du bereits fertig hast. :D

Ich hoffe Du bist nicht auf dem Weg Dir einen Game-Bot zu basteln. :D

Danke!

BFF
 
Ganz genau so funktioniert ein Anfänger ("Aim"-)Bot und ich habe selbst noch ein paar Selbsterstellte von Früher gespeichert. Allerdings für ein Browser Spiel, welcher für mich weitergespielt hat, als ich in der Arbeit war. :D
Wie BFF schon sagte, wäre es einfacher dein Skript anzupassen, wenn man es sehen würde.
So wie bei Excel Formeln eben.
 
Nein, kein Spiel. Ich automatisiere den Uploadprozess von Bildern auf verschiedenen Plattformen. Wenn ein Captcha kommt, soll soll er die Plattform quasi aus den Skript nehmen, aber bei den anderen weitermachen. Das Skript besteht nur aus Mausklicks, also komplett unspannend. Bisher hab ich noch keine Koordinaten, wird aber so aussehen:

1 $i=0
2 while $i<10
3
4 ; Plattform 1
5 MouseClick ( "left" , 233, 407, 1 ) ; Tab Plattform 1
6 MouseClick ( "left" , 233, 407, 1 ) ; Upload
7 MouseClick ( "left" , 233, 407, 1 ) ; Pic 1 auswählen
8
9 ; Plattform 2
10 MouseClick ( "left" , 233, 407, 1 ) ; Tab Plattform 2
11 MouseClick ( "left" , 233, 407, 1 ) ; Upload
12 MouseClick ( "left" , 233, 407, 1 ) ; Pic 1 auswählen
13
14 ; Die zickige Plattform 3 mit Captures
15 MouseClick ( "left" , 233, 407, 1 ) ; Tab Plattform 3
16 MouseClick ( "left" , 233, 407, 1 ) ; Upload
17 If PixelGetColor then ; mach bei Zeile 19 weiter
18 MouseClick ( "left" , 233, 407, 1 ) ; Pic 1 auswählen
19
20 $i=$i+1
21 wend
 
Da fehlen noch Koordinaten und Farbe bspw. so: PixelGetColor(319,418)<>"0xD0D0D0", oder nicht? Wie gesagt, BFF, das ist ein Beispiel, es gibt noch keinen Code. Aber ich weiss, dass ich diesen Befehl brauche. Vorher brauch ich gar nicht anfangen.
 
Ja. Da fehlen Koordinaten. Ohne die geht es nicht.

Fuer den Rest zeigt die Hilfe fuer die Funktion exakt was Du machen sollst.

BFF
 
Du, wenn du nicht helfen magst, dann investiere deine Zeit doch sinnvoller. So unnötig.
 
Ach Grosser.

Ich hab Dir den Weg gesagt, wie Du Dein Problem loesen kannst, ja wenn Du die Doku der von Dir verwendeten Funktion lesen und fuer Dich umsetzen wuerdest. Ich mach die Arbeit nicht fuer Dich. Warum auch, kann es doch eh nicht testen weil nix von dem was Du wirklich machen willst bekannt ist.

BFF

P.S.
Kennst Du? -> https://autoit.de/index.php?board-list/
 
Code:
If Not PixelGetColor(MISSING_PARAMETERS) == $VAR Then
  MouseClick ( "left" , 233, 407, 1 ) ; Pic 1 auswählen
EndIf
Suchst du das ?

EDIT: Sprich ist dein Problem die verständnis vom Programmablauf als solches If-Else oder wie die die rückgabewerte verarbeitest ?
 
Zuletzt bearbeitet:
Defmaster schrieb:
Code:
If Not PixelGetColor(MISSING_PARAMETERS)  Then
  MouseClick ( "left" , 233, 407, 1 ) ; Pic 1 auswählen
EndIf
Suchst du das ?

So ähnlich. Ich möchte anstatt einen Mausklick, dass das Skript bei einer bestimmten Zeile weitergeht, wenn der Pixel eine bestimmte Farbe einnimmt, wenn nicht, soll das Skript unverändert weiterlaufen.
 
Dann gib klare Anweisungen wo diese bestimmte Zeile ist und wo es normal weiter geht

If … EsleIf … EndIf - primitivste Logikschaltung.

Ein bisschen muss da von dir kommen.

CN8
 
Wie der Vorposter schrieb, das ist eine einfache logikanweisung, du solltest die hier und da ein paar Tutorials angucken.
Wie mein Lösungsansatz, du würdest den Klick nur ausführen wenn eben der entsprechende Pixel NICHT gefunden wird.
Wird er gefunden führt er den Klick nicht aus und setz das Skript unter EndIf fort.
 
Ich versteh das ja, ich bin selbst in einem Forum aktiv und weiss wie es ist, wenn Noobs kommen und gleich bei C anfangen möchten, aber keinen Plan von A und B haben. Ich will mich auch noch näher mit den Basics beschäftigen, aber momentan würd ich einfach gern das eine Puzzelteilchen haben :)

Also wenn ich das so schreiben würde:

17 If not PixelGetColor(319,418)<>"0xD0D0D0" then
18 MouseClick ( "left" , 233, 407, 1 ) ; Pic 1 auswählen
19End If

Dann würde er, wenn er die Farbe findet, den Mausklick nicht ausführen und einfach das restliche Skript laufen lassen. Wenn er die Farbe findet, dann würde er den Mausklick machen, oder?
 
In dem Fall muss das "not" weg da du mit <> bereits auf ungleichheit prüfst.
Dazu liefert die Funktion eine Dezimalzahl zurück du musst also noch in Hex umwandeln mit Hex()
also so:
If Hex(PixelGetColor(319,418),6) <>"D0D0D0" then
...
 
Ach, ok, damit klammere ich quasi diese Farbe aus, spannend. Könnte ich diese Prüfung wie folgt an mehreren Stellen einsetzen?

If Hex(PixelGetColor(319,418),6) <>"D0D0D0" then
MouseClick ( "left" , 233, 407, 1 ) ; Pic 1 auswählen
If Hex(PixelGetColor(319,418),6) <>"D0D0D0" then
MouseClick ( "left" , 423, 524, 1 ) ; Upload
If Hex(PixelGetColor(319,418),6) <>"D0D0D0" then
MouseClick ( "left" , 1023, 260, 1 ) ; OK
EndIf
 
Für jedes If brauchst du ein EndIf.
Du kannst auch mehrere befehle unter einem If ausführen lassen.
Aber das sind dann wie gesagt Grundlagen die man sich selber über ein paar Tutorials aneignen sollte und am besten mit ein paar kleinen Programmen selber üben/ausprobieren sollte um das ganze besser zu verinnerlichen.
 
Ok, vielen Dank, hat mir weitergeholfen.
Ergänzung ()

If PixelGetColor(346.99) = 0x00B2A5 Then
Funktion_EE()
EndIf Not

Stimmt die der Syntax? Ich kann das gerade nicht prüfen. Wenn der Pixel die Farbe bekommt, soll die Funktion EE laufen, wenn nicht, nach EndIf Not weiterlaufen.
 
Zuletzt bearbeitet:
Zurück
Oben