Problem mit Func

  • Hallo,

    hab mal was gescriptet das er auf eine farbe geht.
    funktioniert alles super bis auf das er ein hotkey nicht ausführen will oder es liegt an der func, hier mal mein code:

    [autoit]

    HotKeySet("^!s", "MeinStart")HotKeySet("^!x", "MeinExit")
    func MeinStart()while 1$Position = PixelSearch ( 0, 0, 1280, 720, 0x0000FF, 100, 3 )if not @error Thenmousemove ( $Position[0], $Position[1], 1000 )endifWEndendfunc
    Func MeinExit() ExitEndFunc

    [/autoit]


    edit: das im code keine zeilenumbrüche sind weiss ich nicht, vielleicht liegt es an google chrome

    2 Mal editiert, zuletzt von MaxiKing (21. November 2010 um 02:41)

  • ich will damit gucken ob es eine bestimmte farbe gibt, und wenn ja wo und dann soll die maus dahin gehen.
    vielleicht geht es ja noch unkomplizierter, bin halt neu in sachen autoit

  • Thread wurde von mir deaktiviert, da

    • Spiele-BOT Verdacht,


    • edit: das im code keine zeilenumbrüche sind weiss ich nicht, vielleicht liegt es an google chrome


      Man kann sich auch die Mühe machen und es hier online editieren, bzw. einen anderen Browser verwenden. Du möchtest, dass dir geholfen wird also tu auch etwas dafür und mach es nicht unnötig schwerer

    Edit: Mouseclick keine Koordinaten sagt wohl alles

    @MOD/ADMIN bitte löschen

    mfg autoBert

    2 Mal editiert, zuletzt von autoBert (22. November 2010 um 03:08)

    • Offizieller Beitrag

    NEIN, das geht mir jetzt einfach zu weit Alle und Jeden unter generellen Botverdacht zu stellen.

    Die Frage verstößt NICHT gegen die Regeln. Wir können vermuten, dass es ein Bot werden soll.
    ABER:
    Ich verlange, dass für Alle gleichermassen die Unschuldsvermutung gilt. Falls die Vermutung besteht, es könnte ein Bot werden, braucht hier niemand zu antworten.

    Ich denke, meine Position zum Thema Bot ist unstrittig. Wir haben hier aber eine Community, die mit Leben erfüllt sein soll und nicht mit Scharmützeln. Es gilt gründlich abzuwägen, wo liegt ein Regelverstoß vor und wo nicht. Wehret den Anfängen ist völlig in Ordnung, aber nicht derart, dass wir uns das Leben schwer machen.

    [Thread wieder offen]

  • Eben deshalb bitte ich den Threadstarter ja, meine ursprüngliche Frage zu beantworten: Nicht WAS soll daws Skript machen, sondern wofür/warum; was für einen Zweck soll das Skript haben?

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

  • Und deshalb bin ich mal für klare Definitionen von Bots im Zusammenhang mit Regelstößen.
    Es wäre für die ganzen Benutzer hier sinnvoll, so meine Meinung, wenn man mal klar aufzeigen würde, ab wann ein Script ein Bot ist, ab wann ein Beitrag gemeldet werden darf/muss, ab wann keine Antwort gegeben werden darf, ab wann ein klarer Bot vorliegt und wie sich die Nutzer dann zu verhalten haben.
    Dürfen wir einfachen User klar nach einem Bot fragen? Oder soll die Frage so "verschleiert" werden, was mir bei den Powerusern immer auffällt, die nie direkt nach einem Bot fragen sondern immer "Wozu dient das Script?" und nicht "Wird das ein Bot?" fragen, das man den Hintergrund nicht preisgibt?

    Ich bin mal für einheitliche klare Definitionen, auf deren Grundlage man sich dann orientieren kann, den so wird jeder 4. Beitrag zu Unrecht als Bot abgetan und der Nutzer bekommt nie eine Antowort, was natürlich schade ist.

    PS: Sorry für's Abweichen vom Topic, aber das musste mal raus.

  • Hallo,
    ich möchte dich nicht "niedermachen" sondern dir eher etwas mit auf den Weg geben:
    Wenn du bei uns einen Thread erstellst, könntest du dann bitte gewisse Erscheinungskriterien erfüllen?
    Ich meine die W-Fragen die in einem Thread vorerst genannt werden sollten!
    z.B:
    WAS will ich Programmieren/habe ich bereits?
    WOZU dient es.
    WO liegt mein aktuelles Problem
    WOHER hab ich mein Programm? (Copy&Paste aus dem Internet, Selbst probiert etc.)
    ...

    Was mich z.B erst irritiert hat war deine Formulierung: Ich möchte das er dies und jenes macht.

    Ich halte es für elementar, das jeder User in der Lage ist, einen vernünftigen Thread zu eröffnen, denn nur so, kann jeder ein maximum an Hilfe erhalten.
    Denn jeder hier ist hilfsbereit.


    Wenn man sich an solche Regeln ein bisschen hält, wird einem in diesem Forum richtig konstruktiv geholfen!! :party:

    So: Genug geschwafelt! :)

  • Hi MaxiKing,
    Dein Exit wird nichtausgeführt weil das Programm noch in der Whileschleife ist. Ein Exitloop wird hier abhilfe schaffen.

    Habe ich eben versucht, aber leider hat es nicht funktioniert, ExitLoop muss in der Schleife sein, aber ich kann in der Schleife keine neue Funktion setzen, weil die Schleife in einer Funktion ist. und man kann doch keine Funktion in einer anderen reintuen, oder?

  • Ich habe das mit der funktion gemacht, aber dann kommt eine Fehlermeldung:"Func" has no matching "EndFunc" (oder sowas)
    und ich habe irgendwo gelesen das man keine Funktion in einer anderen erstellen kann.

  • So geht das nicht:

    [autoit]

    _Main()
    Func _Main()
    MsgBox(0,"Funktion", "Tada!")
    Func _Sub()
    MsgBox(0,"Funktion in Funktion", "Nichts mit Tada!")
    EndFunc
    _Sub()
    EndFunc

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

    ;SO muss das sein:

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

    _Main()
    Func _Main()
    MsgBox(0,"Funktion", "Tada!")
    _Sub()
    EndFunc

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

    Func _Sub()
    MsgBox(0,"Funktion in Funktion", "Jetzt ist's Tada!")
    EndFunc

    [/autoit]
  • HIER AUS DER HILFE

    Spoiler anzeigen
    [autoit]

    Findet ein rotes Pixel im Rechteck 0,0-200,300.
    $coord = PixelSearch( 0, 0, 200, 300, 0xFF0000 )
    If Not @error Then
    MsgBox(0, "Die Koordinaten X und Y lauten:", $coord[0] & "," & $coord[1])
    EndIf

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

    ; Findet ein rotes Pixel oder ein Pixel mit 100 Abstufungen (Variationen) von reinem Rot.
    $coord = PixelSearch( 0, 0, 200, 300, 0xFF0000, 100 )
    If Not @error Then
    MsgBox(0, "Die Koordinaten X und Y lauten:", $coord[0] & "," & $coord[1])
    EndIf

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

    Einmal editiert, zuletzt von rewejo (21. November 2010 um 14:51)

  • sind left und top richtig?

    Also Meine Bildschirmauflösung ist 1280 x 720.


    Mein Neuer Code:

    [autoit]

    HotKeySet("^!s", "_MeinStart")
    HotKeySet("^!x", "_MeinExit")
    func _MeinStart()
    while 1
    $Position = PixelSearch ( 0, 0, 1280, 720, 0xFF00FF, 100, 3 )
    if not @error Then
    mousemove ( $Position[0], $Position[1], 0 )
    EndIf
    _MeinExit()
    WEnd
    EndFunc
    Func _MeinExit()
    ExitLoop
    EndFunc

    [/autoit]


    Jetzt diese Meldung: "ERROR: "Exitloop" statemants only valid inside a For/Do/While Loop."

  • Du musst das ExitLoop in einer While -Do oder -For Schleife nutzen.
    Innerhalb einer Funktion geht das nicht. Abgesehen davon, fehlt in dem Script eine Schleife, ides es offenhält, damit HotkeySet verwendet werden kann; das Programm beendet sich so sofort wieder.

  • So ?

    [autoit]

    #include <Misc.au3>
    HotKeySet("^!s", "_MeinStart")
    $hDll = DllOpen("user32.dll")
    Func _MeinStart()
    While 1
    $Position = PixelSearch(0, 0, 1280, 720, 0xFF00FF, 100, 3)
    If Not @error Then MouseMove($Position[0], $Position[1], 0)
    If _IsPressed("11", $hDll) And _IsPressed("12", $hDll) And _IsPressed("58", $hDll) Then _MeinExit()
    WEnd
    EndFunc ;==>_MeinStart
    Func _MeinExit()
    Exit
    DllClose($hDll)
    EndFunc ;==>_MeinExit

    [/autoit]