Wie bekomme ich beide checkboxen gleichzeitig zum laufen

  • Dein Script tut genau das, was es soll :D
    Du hast gecodet, dass bei aktiver Checkbox21 das Script solange Pause machen soll nach erledigung von : ControlSend("Unbenannt - Editor","",15,"1")

    Spoiler anzeigen
    [autoit]

    sleep(GUICtrlRead($input1))

    [/autoit]


    und bei aktiver Checkbox22 wird nach erledigung dieses Befehls ( ControlSend("Unbenannt - Editor","",15,"2") ) solange Pause gemacht:

    Spoiler anzeigen
    [autoit]

    sleep(GUICtrlRead($input2))

    [/autoit]


    PAUSE heißt: in der Zeit wird nichts getan.
    D.h. Dein Ansatz ist in der Form verkehrt. Das wirst Du mit sleep nicht lösen können.

    Versuch doch mal eine Variable hochzuzählen innerhalb Deiner If-Then Schleife......

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    • Offizieller Beitrag

    Hallo,

    man könnte es mit Timern lösen!


    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <Timers.au3>

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

    Local $idTimer1 = -1, $idTimer2 = -1, $idTimer21 = -1, $idTimer22 = -1
    Local $tTimer1 = 0, $tTimer2 = 0, $tTimer21 = 0, $tTimer22 = 0

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

    $frmTest = GUICreate("test",700,400)
    $tab = GUICtrlCreateTab ( 10, 10, 680, 350)
    $button1 = GUICtrlCreateButton ("Notizen",640,370)
    $button2 = GUICtrlCreateButton ("Editor schließen",10,370)
    $tabitem = GUICtrlCreateTabItem ("TestTabItem")
    $checkbox1 = GUICtrlCreateCheckbox ( "Checkbox1", 100,50)
    $checkbox2 = GUICtrlCreateCheckbox ("Checkbox2",300,50)
    $slider1 = GUICtrlCreateSlider (100,100,200,20)
    $tabitem2 = GUICtrlCreateTabItem("test2")
    $checkbox21 = GUICtrlCreateCheckbox ("3",120,70)
    $checkbox22 = GUICtrlCreateCheckbox ("4",200,70)
    $input1 = GUICtrlCreateInput("",150,70)
    GUICtrlSetData($input1,5000,1)
    $input2 = GUICtrlCreateInput("",230,70)
    GUICtrlSetData($input2,5000,1)
    GUICtrlSetLimit($slider1,5000,1000)
    GUISetState(@SW_SHOW)
    GUICtrlSetData($slider1, 2,0)

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $button1
    Run("notepad.exe")

    Case $button2
    ProcessClose("notepad.exe")
    EndSwitch
    If BitAnd(GUICtrlRead($checkbox1),$GUI_CHECKED) = $GUI_CHECKED Then
    If $idTimer1 = -1 Or $tTimer1 <> GUICtrlRead($Slider1) Then
    $tTimer1 = GUICtrlRead($Slider1)
    $idTimer1 = _Timer_SetTimer($frmTest, $tTimer1, "Timer1", $idTimer1)
    EndIf
    Else
    If $idTimer1 <> -1 Then
    _Timer_KillTimer($frmTest, $idTimer1)
    $idTimer1 = -1
    EndIf
    EndIf

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

    If BitAnd(GUICtrlRead($checkbox2),$GUI_CHECKED) = $GUI_CHECKED Then
    If $idTimer2 = -1 Or $tTimer2 <> GUICtrlRead($Slider1) Then
    $tTimer2 = GUICtrlRead($Slider1)
    $idTimer2 = _Timer_SetTimer($frmTest, $tTimer2, "Timer2", $idTimer2)
    EndIf
    Else
    If $idTimer2 <> -1 Then
    _Timer_KillTimer($frmTest, $idTimer2)
    $idTimer2 = -1
    EndIf
    EndIf

    If BitAnd(GUICtrlRead($checkbox21),$GUI_CHECKED) = $GUI_CHECKED Then
    If $idTimer21 = -1 Or $tTimer21 <> GUICtrlRead($input1) Then
    $tTimer21 = GUICtrlRead($input1)
    $idTimer21 = _Timer_SetTimer($frmTest, $tTimer21, "Timer21", $idTimer21)
    EndIf
    Else
    If $idTimer21 <> -1 Then
    _Timer_KillTimer($frmTest, $idTimer21)
    $idTimer21 = -1
    EndIf
    EndIf

    If BitAnd(GUICtrlRead($checkbox22),$GUI_CHECKED) = $GUI_CHECKED Then
    If $idTimer22 = -1 Or $tTimer22 <> GUICtrlRead($input2) Then
    $tTimer22 = GUICtrlRead($input2)
    $idTimer22 = _Timer_SetTimer($frmTest, $tTimer22, "Timer22", $idTimer22)
    EndIf
    Else
    If $idTimer22 <> -1 Then
    _Timer_KillTimer($frmTest, $idTimer22)
    $idTimer22 = -1
    EndIf
    EndIf
    WEnd

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

    Func Timer1($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime

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

    If WinExists("Unbenannt - Editor") Then
    ControlSend("Unbenannt - Editor", "", "Edit1", "1")
    EndIf
    EndFunc

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

    Func Timer2($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime

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

    If WinExists("Unbenannt - Editor") Then
    ControlSend("Unbenannt - Editor", "", "Edit1", "2")
    EndIf
    EndFunc

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

    Func Timer21($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime

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

    If WinExists("Unbenannt - Editor") Then
    ControlSend("Unbenannt - Editor", "", "Edit1", "3")
    EndIf
    EndFunc

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

    Func Timer22($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime

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

    If WinExists("Unbenannt - Editor") Then
    ControlSend("Unbenannt - Editor", "", "Edit1", "4")
    EndIf
    EndFunc

    [/autoit]

    PS: Geht nur mit der aktuellen Version oder der letzten Beta!