Script für Präsentationen

  • Hallo nochmal, ich habe ein keines Script für meine Präsentationen geschrieben.

    Es soll alle 10 sek das Bild wechseln und bei gewissen Bildern, denn Pixel suchen und drauf klicken, damit die Infobox aufgeht.
    Ich möchte aber nicht die 10Sek warten, sondern er sollte die infobox sofort öffnen.

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}","ENDING")

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

    $innen = 1
    While 1
    $pixel = PixelSearch(0, 0, 768, 1204, 0x473870,10,3 )
    If Not @error Then
    MouseMove($pixel[0],$pixel[1])
    MouseClick("left")
    Endif
    $innen = 2
    While $innen = 2
    MouseMove(1081, 158);
    MouseClick("left")
    Sleep(10000)
    WEnd
    $innen = 1
    Wend
    $innen = 2

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

    Func ENDING()
    Exit
    EndFunc

    [/autoit]
  • Es soll solange laufen, bis ich das script beende.

    Das „$innen“ habe ich aus einem anderen beitrag, damit soll mal die schleifen irgend wie aushebeln können, damit die zweite schleife sofort abgebrochen wird.

  • [autoit]

    HotKeySet("{ESC}","ENDING")

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

    $innen = 1
    While 1
    $pixel = PixelSearch(0, 0, 768, 1204, 0x473870,10,3 )
    If Not @error Then
    MouseMove($pixel[0],$pixel[1])
    MouseClick("left")
    Endif
    Sleep(10000)
    MouseMove(1081, 158);
    MouseClick("left")

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

    Wend

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

    Func ENDING()
    Exit
    EndFunc

    [/autoit]


    Probiers mal so.
    edit:Script geändert

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Nein leider nicht, er wartet immer noch bis die 10Sek vorbei sind und dann sucht er erst den Pixel

  • Das verstehe ich nicht:

    [autoit]

    HotKeySet("{ESC}","ENDING")

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

    $innen = 1
    While 1
    $pixel = PixelSearch(0, 0, 768, 1204, 0x473870,10,3 )
    If Not @error Then
    MouseMove($pixel[0],$pixel[1])
    MouseClick("left") ;Auf Infobox klicken
    Endif
    Sleep(10000)
    MouseMove(1081, 158);
    MouseClick("left");Auf weiter klicken

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

    Wend

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

    Func ENDING()
    Exit
    EndFunc

    [/autoit]


    Stimmen die Kommentare?

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Ja die Kommentare stimmen so.
    Mir ist auch gerade aufgefallen das es manchmal klappt und manchmal nicht.
    Also wenn ein .jpg das nächste Bild ist, dann findet er den pixel sofort, aber wenn es ein Animiertes .gif ist dann sucht er nicht. Auch wenn das .gif dann auf die markierte Stellung umspringt.
    Ich glaube das Problem liegt darin, das PixelSearch nur einmal sucht und dann weiter an den nächsten Schritt abgibt. PixelSearch müsste die ganze zeit suchen. (Ich hoffe du weis was ich meine)

  • verstehe.

    [autoit]

    HotKeySet("{ESC}","ENDING")

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

    $innen = 1
    While 1
    For $i=0 To 100
    $pixel = PixelSearch(0, 0, 768, 1204, 0x473870,10,3 )
    If Not @error Then
    MouseMove($pixel[0],$pixel[1])
    MouseClick("left") ;Auf Infobox klicken
    Endif
    Sleep(100)
    Next
    MouseMove(1081, 158);
    MouseClick("left");Auf weiter klicken

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

    Wend

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

    Func ENDING()
    Exit
    EndFunc

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Ja sauber es geht, danke. Wenn du mal zeit hast würde ich dich bitten etwas zu den „For $i=0 To 100“ zu schreiben, damit ich das auch verstehe.
    Habe aber auch noch ne Frage, wie kann ich jetzt die zeit für weiter verändern, sehe da keine sleep 10000 mehr?

  • Hi,
    das

    [autoit]

    For $i= 0 To 100
    ;...
    Next

    [/autoit]


    bedeutet, dass er das was zwischen dem Statement steht 101 mal wiederholt.
    Dazwischen steht z.B.

    [autoit]

    Sleep(100)

    [/autoit]


    Das bedeutet, dass 100 mal Hintereinander PixelSearch und dann noch das Sleep ausgeführt wird. (100 * 100 = 10000 = Sleep(10000) = 10 Sec).
    Allerdings ist die Lösung nicht gerade gut würde ich mal behaupten.
    Erklär mal bitte wie du das überhaupt Funktionieren soll. (z.B. Pseudocode)
    Ich verstehe nicht wann er klicken soll, bzw. wohin, usw...

    anoo2008

  • Es ist einfach hundertmal (For $i=0 To 100) 100 ms warten Sleep(100)
    d.h. 100*100=10000
    Mit Sleep(x) kannst du die Geschwindigkeit/Performance anpassen.
    Mit For $i=0 To x kannst du die Zeit anpassen

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.