Brauche unbedingt Hilfe

  • Also, Großes Thema im Informatikunterricht ist "Programmieren bzw. Programme schreiben"
    Vorher haben wir noch nichts mit Programmieren gemacht, dabei sagte unser Lehrer: "Ihr macht den anfang mit eurem Projekt und danach vertiefen wir das alles."
    Eine Gruppe hat C++ als thema bekommen die andere Gruppe ,, und wir eben AutoIt wo wir diese blöde Aufgabe bekommen haben damit wir uns das alles besser vorstellen können obwohl wir kein blassen schimmer davon haben ...

  • Alles klar, jetzt ist mir auch der Sinn der Aufgabe klar. Zwar ist die Aufgabenstellung vielleicht nicht die beste Wahl, aber führt jedoch zum eigentlichen Sinn der Aufgabe. Kenne ich von meine Lehrer auch, die stellen auch schon mal fragwürdige Aufgaben. Aber letztendlich lernt man doch schon das, was sie damit vermitteln wollen. Bei dir ist das in diesem Fall die Einführung in die Programmierung. Da hast du Glück gehabt dass du nicht C++ erwischt hast, AutoIt ist da wesentlich einfacher zu erlernen. Vielleicht macht dir ja das Programmieren später ja tatsächlich Spaß und du wirst es weiter fortführen, wer weiß. :)

    Soa, jetzt zu deinem eigentlichen Problem. Da es wenig Sinn macht dir eine Lösung dahin zu klatschen, gebe ich dir einfach einen Crashkurs in AutoIt. Ich versuche dir alles möglichst so beizubringen, dass du die Aufgabe auch selber lösen kannst. Da ihr dieses Thema ja quasi jetzt angefangen habt und du nicht so scheinst als ob du schon Programmiererfahrung hast, wird dir nichts anderes übrig bleiben als dir die Grundlagen anzueignen.

    Da ich nicht weiß wie viel du bis jetzt schon selber erarbeitet hast, werde ich einfach von Anfang an ansetzen. Dabei werde ich nur auf das eingehen, was du zur Lösung dieser Aufgabenstellung brauchst. Also, fangen wir an:

    Variablen
    Ich kenne kaum ein Skript, was nicht ohne Variablen auskommt. In Variablen kannst du Werte hinterlegen, abfragen und auch ändern. Variablen werden in AutoIt mithilfe eines $ Zeichens eingeleitet und enthalten danach einen Bezeichner. Der Bezeichner darf dabei nur aus den Zeichen A-Z, a-z, 0-9 und dem Unterstrich _ bestehen. In Variablen kannst du jede mögliche Art von Daten ablegen:

    [autoit]

    $var = 123 ; Ganzzahlen
    $var = 333.33 ; Gleitkommazahlen
    $var = 'Text' ; Strings

    [/autoit]

    If-Abfragen
    If-Abfragen enthalten eine Bedingung, nur wenn diese Zutrifft wird auch der enthaltende Code ausgeführt. Ansonsten nicht. Dadurch ist es Möglich dem Programm Logik zu geben. Schauen wir uns einmal folgendes Skript an:

    [autoit]

    If True Then MsgBox(0, '', 'Die Bedingung ist wahr!')
    If False Then MsgBox(0, '', 'Die Bedingung ist falsch!')

    [/autoit]

    True steht dabei für wahr, False für falsch. Wie bereits gesagt wird eine Bedingung nur ausgeführt wenn diese Wahr ist. Um flexibel zu arbeiten können zum Vergleich auch Variablen und Vergleichsoperatoren herangezogen werden:

    [autoit]

    $var = 1

    [/autoit][autoit][/autoit][autoit]

    If $var = 1 Then
    ; Wenn $var gleich 1 ist dann...
    ElseIf $var = 2 Then
    ; Wenn $var gleich 2 ist dann...
    ElseIf $var > 2 Then
    ; Wenn $var über 2 ist dann...
    Else ; Wenn nichts zutrifft...
    ; ... dann diesen Code ausführen...
    EndIf

    [/autoit]

    Dabei stehen folgende Vergleichsoperatoren zur Verfügung:

    Code
    a = b		a ist gleich b
    a == b		a ist gleich b (auch von der Groß- und Kleinschreibung bei Strings)
    a < b		a ist kleiner als b
    a <= b		a ist kleiner oder gleich wie b
    a > b		a ist größer als b
    a >= b		a ist größer oder gleich wie b
    a <> b		a ist ungleich b

    Darüber hinaus gibt es noch die logischen Operatoren die ebenfalls eingesetzt werden können:

    Code
    x = False		x ist False, 0 oder ein Leerstring
    x = True		x ist nicht False, also alle anderen Werte
    Not x			Negiert den Ausdruck, aus True wird False und andersherum

    Ansonsten stehen dir noch die Switch und Select Verzweige zur Verfügung. Da bitte selber nach googeln.

    Schleifen
    Es gibt die While-, die For- und die Do-Schleife. Alle 3 haben einen unterschiedlichen Zweck. Die While Schleife wird solange ausgeführt wie die Bedingung im Schleifenkopf wahr ist:

    [autoit]

    $i = 1

    [/autoit][autoit][/autoit][autoit]

    While $i < 10 ; Solange $i unter 10 ist...
    ; ... Code ausführen...
    ConsoleWrite($i & @CRLF)
    $i += 1
    Wend

    [/autoit]

    Die For-Schleife wird dagegen angegeben wie oft die Schleife ausgeführt werden soll:

    [autoit]

    For $i = 5 To 7 ; 3 mal ausführen.
    ConsoleWrite($i & @CRLF)
    Next

    [/autoit]

    Zum Schluss noch die Do-Schleife. Diese wird mindestens einmal ausgeführt, danach solange wie die Bedingung am Schleifenende(!) falsch ist:

    [autoit]

    $i = 1

    [/autoit][autoit][/autoit][autoit]

    Do
    ConsoleWrite($i & @CRLF)
    $i += 1
    Until $i = 10

    [/autoit]

    Built-in Funktionen
    AutoIt liefert einen riesigen Funktionsumfang mit. Letztendlich gibt es zu vielen Aufgabenstellungen unterschiedliche Funktionen. In deinem Fall eben die PixelSearch() Funktion. Diese nimmt spezielle Parameter entgegen die in der Dokumentation nachgelesen werden können. Aber ich denke den Sinn von Funktionen hast du schon verstanden.

    Mithilfe dieses Wissens solltest du halbwegs in der Lage sein selber ein Skript zu schreiben. Zumindest einen Ansatz zu liefern. Versuch es erst einmal selber, danach kannst du gerne nochmal nachfragen. Ich wünsche viel Erfolg! :)

  • Wahnsinn was du dir für Mühe gemacht hast ShitDown! =O
    Ich bin euch allen so dankbar für eure Hilfe, Ich habe es geschafft! Es funktioniert! :rock:
    GERETTET !! :thumbup:
    Durch deinen Crashkurs kann ich mir jetzt auch sehr gut einige andere Funktionen in AutoIt erklären, ich bin so Happy!

    Danke danke danke danke danke danke!! :thumbup:

  • Sehr schön dass ich dir helfen konnte. Falls noch konkrete Fragen auftauchen kannst du diese natürlich auch stellen. Alternativ stehe ich dir auch noch per PN zur Verfügung. ^^

    LG. Make :)