Gui fertigstellen aber wie

  • Hi Chris,

    ich habe das Script mal ausprobiert, geht bei mir eigentlich. Nur die Farbabfrage If PixelGetColor(104, 740) = 0x101410 Then geht bei mir nicht, der Rest funzt.
    Ein Problem habe ich allerdings gesehen. Wenn ich über die GUI dann wieder Stop clicke, dauert es ewig bis das Script das auch verarbeitet.

    Irgendwie scheint der Windowseventhandler die Events zuspeichern und nur häppchenweise an autoit weiterzureichen. Oder halt irgendwie so. Oder anders. Jedenfalls clicke ich stop und er läuft noch 20 mal oder so durch die Schleife statt anzuhalten.

    PS: Zum besseren Debuggen habe ich das Script leicht modifieziert:

    Spoiler anzeigen
    [autoit]


    #include
    $Form1_1 = GUICreate("Multibot v. 1.2 Made bei Chris", 170, 140, 360, 424)
    $Group1 = GUICtrlCreateGroup("Autopot´s", 0, 0, 137, 89)
    $chkRot = GUICtrlCreateCheckbox("Rote Pot´s", 8, 24, 97, 17)
    $chkBlau = GUICtrlCreateCheckbox("Blaue Pot´s", 8, 48, 97, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $cmdStart = GUICtrlCreateButton("Start", 0, 105, 73, 25, 0)
    $cmdStop = GUICtrlCreateButton("Stop", 88, 105, 75, 25, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    $checkthepixel = False
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $cmdStart
    GUICtrlSetState($cmdStart, $GUI_DISABLE)
    GUICtrlSetState($cmdStop, $GUI_ENABLE)
    $checkthepixel = True

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

    Case $cmdStop
    GUICtrlSetState($cmdStop, $GUI_DISABLE)
    GUICtrlSetState($cmdStart, $GUI_ENABLE)
    $checkthepixel = False
    Case Else
    ConsoleWrite ("Message ist: "&$nMsg&@CRLF)
    EndSwitch
    If $checkthepixel = True Then CheckPixel()
    Sleep(250)
    WEnd
    Func CheckPixel()
    If BitAND(GUICtrlRead($chkRot), $GUI_CHECKED) Then
    ConsoleWrite ("Rot ist an"&@CRLF)
    If PixelGetColor(104, 740) = 0x101410 Then
    For $i = 1 To 6
    ControlSend("Unbenannt - Editor", "", "Edit1", "1{ENTER}") ;ist für die roten pots
    Next
    EndIf
    EndIf

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

    If BitAND(GUICtrlRead($chkBlau), $GUI_CHECKED) Then
    ConsoleWrite ("Rot ist an"&@CRLF)
    If PixelGetColor(78, 751) = 0x101410 Then
    For $i = 1 To 4
    $E = ControlSend("Unbenannt - Editor", "", "Edit1", "2{ENTER}") ;ist für die blauen pots
    If Not $E Then $i += 1
    Next
    EndIf
    EndIf

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

    If BitAND(GUICtrlRead($chkRot), $GUI_CHECKED) Or _
    BitAND(GUICtrlRead($chkBlau), $GUI_CHECKED) Then
    ControlSend("Unbenannt - Editor", "", "Edit1", "Pause{ENTER}")
    Sleep(1000)
    EndIf
    EndFunc ;==>CheckPixel

    [/autoit]


    </GUIConstants.au3>

  • bei mir kommt da immer ne meldenung mit diesem inhalt


  • Beim Copy-Paste ist leider das #include zerhackt worden. Du mußt wieder die GUIconstants.au3 includen