1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. ThirtySix

Beiträge von ThirtySix

  • ExitLoop?

    • ThirtySix
    • 4. Juli 2013 um 10:26
    Zitat von Schnitzel


    Zunächst Herzlich Willkommen im Forum ;)

    Was genau willst du denn pausieren und warum?
    Anhand deines Code's lässt sich nur sagen dass die Pause ziemlich lang dauern wird :D
    Ohne abbruchbedingung in der While schleife macht das keinen Sinn.

    (Am besten ganzen Code posten und Autoit Tag benutzen)


    Danke erstmal.. werdet mich wohl jetzt öfters sehen :p

    naja.. ich habs jetzt tatsächlich gelöst bekommen...
    das Problem war einfach das die schleife davor nicht beendet wurde.. und die pausenschleife mit Exitloop nur die eine schleife beendet hat.
    ich hab aber nochnicht verstanden gehabt das der Script danach wieder in die nicht beendete schleife zurückspringt.

    mit "ExitLoop 2" war die sache geregelt :p

    nach inzwischen 6 stunden Arbeit an meinem aller ersten autoit script ist es nun vollbracht.

    was man damit machen kann überlass ich eurer fantasie.
    aufjedenfall funktioniert es schonmal :p

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #Region ### START Koda GUI section ### Form=C:\Users\ThirtySix\Desktop\BySkiLLz.kxf
    $BySkiLLz = GUICreate("BySkiLLz", 172, 266, 641, 318)
    GUISetBkColor(0x99B4D1)
    $GetPosNW = GUICtrlCreateButton("Get Pos", 8, 16, 67, 41)
    $GetPosSO = GUICtrlCreateButton("Get Pos", 8, 64, 67, 41)
    $GetPixel = GUICtrlCreateButton("Get Pixel", 8, 112, 67, 41)
    $Info = GUICtrlCreateButton("Info", 8, 160, 67, 25)
    $NWX = GUICtrlCreateLabel("X = ", 88, 24, 68, 12)
    $NWY = GUICtrlCreateLabel("Y = ", 88, 40, 68, 12)
    $SOX = GUICtrlCreateLabel("X = ", 88, 72, 68, 12)
    $SOY = GUICtrlCreateLabel("Y = ", 88, 88, 68, 12)
    $Pixel = GUICtrlCreateLabel("C = ", 88, 128, 68, 12)
    $MouseClick = GUICtrlCreateCheckbox("Click Target", 88, 160, 81, 17)
    $Start = GUICtrlCreateButton("Start", 8, 200, 67, 25)
    $Pause = GUICtrlCreateButton("Pause", 8, 232, 67, 25)
    $HotkeyF9 = GUICtrlCreateLabel("Hotkey: F9", 88, 208, 56, 17)
    $HotkeyF8 = GUICtrlCreateLabel("Hotkey: F8", 88, 240, 56, 17)
    Dim $BySkiLLz_AccelTable[2][2] = [["{F9}", $Start],["{F8}", $Pause]]
    GUISetAccelerators($BySkiLLz_AccelTable)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    HotKeySet("{f9}","_search")
    HotKeySet("{f8}","_pause")
    HotKeySet("{ESC}","_exit")

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

    $dll= DllOpen("user32.dll")
    Global $MC = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _exit()

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

    Case $GetPosNW
    while 1
    sleep (50)
    $OL = MouseGetPos()
    ToolTip("Oben Links mit Mausklick Definieren"&@CRLF&"x = "&$OL[0]&@CRLF&"y = "&$OL[1])
    if _ispressed(01,$dll) then
    $OL = MouseGetPos()
    ExitLoop
    EndIf
    WEnd
    ToolTip("")
    $NWX = GUICtrlCreateLabel("X = "&$OL[0], 88, 24, 68, 12)
    $NWY = GUICtrlCreateLabel("Y = "&$OL[1], 88, 40, 68, 12)

    Case $GetPosSO
    while 1
    sleep (50)
    $UR = MouseGetPos()
    ToolTip("Unten Rechts mit Mausklick Definieren"&@CRLF&"x = "&$OL[0]&@CRLF&"y = "&$OL[1])
    if _ispressed(01,$dll) then
    $UR = MouseGetPos()
    ExitLoop
    EndIf
    WEnd
    ToolTip("")
    $SOX = GUICtrlCreateLabel("X = "&$UR[0], 88, 72, 68, 12)
    $SOY = GUICtrlCreateLabel("Y = "&$UR[1], 88, 88, 68, 12)

    Case $GetPixel
    While 1
    sleep (50)
    $pos = MouseGetPos()
    $color = PixelGetColor($pos[0],$pos[1])
    ToolTip("Definiere eine Pixelfarbe nach der gesucht werden soll"&@CRLF&"Farbe = "&$Color)
    if _ispressed(01,$dll) then
    $pos = MouseGetPos()
    $color = PixelGetColor($pos[0],$pos[1])
    ToolTip("C = : "&$color)
    ExitLoop
    EndIf
    WEnd
    ToolTip("")
    $Pixel = GUICtrlCreateLabel("C = "&$color, 88, 128, 68, 12)

    Case $MouseClick
    If (GUICtrlRead($MouseClick) ) = $GUI_CHECKED Then
    $MC = 1
    else
    $MC = 0
    EndIf

    Case $Info
    MsgBox(0,"Made By SkiLLz","Der Infotext ist nicht Hilfreich."&@CRLF&"Mir ist halt nichts eingefallen!")

    Case $Start
    _search()

    Case $Pause
    _pause()

    EndSwitch
    WEnd

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

    Func _search()
    While 1
    if $MC = 1 Then
    $ps = PixelSearch($OL[0],$OL[1],$UR[0],$UR[1],$color,10)
    If isArray($ps) Then
    MouseMove($ps[0],$ps[1],0)
    MouseClick("left")
    EndIf
    EndIf
    if $MC = 0 Then
    $ps = PixelSearch($OL[0],$OL[1],$UR[0],$UR[1],$color,10)
    If isArray($ps) Then
    MouseMove($ps[0],$ps[1],0)
    EndIf
    EndIf
    WEnd
    EndFunc

    func _pause()
    While 1
    ExitLoop 2
    WEnd
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]
  • ExitLoop?

    • ThirtySix
    • 4. Juli 2013 um 09:31

    Hey zusammen,
    bin noch ganz Neu in diesem Forum und auch in sachen AutoIT erst seit ein paar stunden am testen. :p

    Ich hab schon "gegoogled" etc. aber ich find da einfach nicht das was ich nur wissen will..
    ist wahrscheinlich einfach so leicht das es niemand anderes nötig hatte zu fragen. ^^

    Und zwar.. wenn ich mit ExitLoop die "while schleife" verlasse .. springt der Script immer wieder in die schleife zurück..
    Damit ist es mir unmöglich wärend der pause zb. das "$GUI_EVENT_CLOSE" ( kleines rotes X oben Rechts im Fenster ) zu drücken..
    Es passiert einfach nichts da er halt in der schleife steckt.. wenn ich nun aber die pause func nicht als schleife definiere,
    dann springt das/der Script automatisch wieder in die schleife eins drüber.. gibt es keine "pause > nul" funktion wie bei batch zb.?
    (sry hab mit batch meine ersten schritte gemacht daher kann ich nur das beispiel nenen.)

    mein pause code:

    Spoiler anzeigen
    Code
    func _pause()
    			While 1
    			   sleep (500)
    			WEnd
    		 EndFunc

    Danke schonmal im vorraus.
    Ich komm da einfach nicht drauf. :/

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™