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

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

    • 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!