Start & Stop

  • Servus an alle,

    ich hätte da eine Frage, unzwar wie kann ich ein "STOP" Button so programmieren, das der mein aktuellen Script stoppt und wenn ich wieder auf "Start" drücke, das der wieder von vorne anfängt.

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 454, 192, 114)
    $Start = GUICtrlCreateButton("Start", 32, 304, 241, 65, $WS_GROUP)
    $Stop = GUICtrlCreateButton("Stop", 328, 304, 233, 65, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

    Case $Stop
    ????????????????????????????????????????

    Case $Start
    $iexplore = "iexplore.exe"
    $dbank = "http://www.google.de"

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

    If ProcessExists($iexplore) Then ;;;; Check-> ob internet explorer offen ist;;;;
    ProcessClose($iexplore)
    Sleep(3000)
    EndIf
    $oIE = _IECreate($dbank)
    $oIEWait = _IELoadWait($oIE, 0, 5)
    $hwnd = _IEPropertyGet($oIE, "hwnd")
    WinSetState($hwnd, "", @SW_MAXIMIZE)
    MsgBox(0,"","Seite 1")

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

    EndSwitch
    WEnd

    [/autoit]

    Also $stop button soll den vorgang nur abbrechen und wenn ich wieder auf start drücke soll dieser Case bereich wieder von vorne anfangen. ich will mein Programm nicht immer wieder beenden, um mein Sript zu stoppen ;)

    Ich hoffe , ich konnte es verständlich genug erklären.

    4 Mal editiert, zuletzt von Baris (20. August 2010 um 16:16)

  • Stopp:

    [autoit]


    While 1
    Sleep (100)
    WEnd

    [/autoit]

    Um das zu continuen machste dort auch den switch an guigetmsg rein, und wenn man auf stopp drückt macht er ein

    [autoit]

    ExitLoop

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Stopp:
    Um das zu continuen machste dort auch den switch an guigetmsg rein, und wenn man auf stopp drückt macht er ein

    [autoit]

    ExitLoop

    [/autoit]

    könntes du mir das mal in Script Format vorführen ?

  • könntes du mir das mal in Script Format vorführen ?

    ich weiss nicht genau wie du das meinst... habe schon einiges ausprobiert... aber es hat nicht geklappt :S

    Einmal editiert, zuletzt von Baris (20. August 2010 um 13:11)

  • Hallo Baris,

    was soll das pushen nach 41 Minuten:

    Zitat

    Heute, 12:19 Von Baris
    Heute, 13:00 Von Baris

    dadurch bekommst du auch nicht schneller Hife, im übrigen ist ein Stop-Button unnötig, da case $start ja nur nach anklicken ausgeführt wird und danach wartet dein Skript auf weitere Tatendrücke.
    Kannst du uns erklären, was du genau vor hast,

    mfg (Auto)Bert

  • Hallo Bert,

    das mit dem post sollte kein push sein... habe mich nur ausversehen selber zitiert, wollte mein beitrag bearbeiten :s

    ich hab nichts besonderes vor, ich will nur mein Script mit ein knopf durck stoppen. aber nicht die gui schliessen. Mit exitloop bei dem stopp button ,schliesst er die ganze gui oder es tut sich garnichts.

  • Halo Baris,

    ich hab nichts besonderes vor, ich will nur mein Script mit ein knopf durck stoppen. aber nicht die gui schliessen.

    Es gibt nichts zu stopen_

    im übrigen ist ein Stop-Button unnötig, da case $start ja nur nach anklicken ausgeführt wird und danach wartet dein Skript auf weitere Tatendrücke.


    Falls dir das Fenster deines Skriptes im Weg ist nimm den Minimier-Button,

    mfg (Auto)Bert

  • Halo Baris,

    Es gibt nichts zu stopen_


    Falls dir das Fenster deines Skriptes im Weg ist nimm den Minimier-Button,

    mfg (Auto)Bert

    Hallo Bert,

    wenn ich eine Automatisierung schreibe kann ich mein Script nur dann beenden, wenn ich die ganze gui schliesse! ich will die automatisierung aber nur mit einem Knopfdruck beenden, aber die Gui soll nicht geschlossen werden. Sprich Automatisierung stopen und Programm anlassen....

    Das soll nicht gehen ?

  • Hallo baris,

    es gibt in deinem derzeitigen Skriptstand nichts zu stoppen, also erkläre, was du genau vor hast: denn auch ein folgender Auto-Login benötigt keine Schleife die man pausieren kann

    Edit: oder ist http://www.deutsche-bank.de garnicht die richtige Adresse?

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (20. August 2010 um 14:53)

  • Hallo baris,

    es gibt in deinem derzeitigen Skriptstand nichts zu stoppen, also erkläre, was du genau vor hast: denn auch ein folgender Auto-Login benötigt keine Schleife die man pausieren kann

    mfg autoBert

    Hallo Bert ,

    diesen oberen script habe ich jetzt auch nur als beispiel benutzt. Beachte bitte doch nur den Case $Stop... ich habe es so versucht :

    [autoit]

    Case $Stop
    ExitLoop

    [/autoit]

    so funktioniert es aber auch nicht.

  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 454, 192, 114)
    $Start = GUICtrlCreateButton("Start", 32, 304, 241, 65, $WS_GROUP)
    $Stop = GUICtrlCreateButton("Stop", 328, 304, 233, 65, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

    Case $Stop
    While GUIGetMsg() <> $start
    sleep(100)
    WEnd
    Case $Start
    $iexplore = "iexplore.exe"
    $dbank = "http://www.deutsche-bank.de"

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

    If ProcessExists($iexplore) Then ;;;; Check-> ob internet explorer offen ist;;;;
    ProcessClose($iexplore)
    Sleep(3000)
    EndIf
    $oIE = _IECreate($dbank)
    $oIEWait = _IELoadWait($oIE, 0, 5)
    $hwnd = _IEPropertyGet($oIE, "hwnd")
    WinSetState($hwnd, "", @SW_MAXIMIZE)
    MsgBox(0,"","Seite 1")

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

    EndSwitch
    WEnd

    [/autoit]
  • dann solltest du dein richtiges Skript posten. Mittlerweile habe ich einen Verdacht

    @all bis zu einer vernünftigen Erklärung bitte nicht supporten,

    mfg (Auto)Bert


    Wasn fürn verdacht ? meine güte.... ich wollte nur eine bestimme funktion für all meine scripte benutzen... diesen script habe ich nur für diesen tread kurz zusammen gestellt. mir ging es eigentlich nur um den Stop button. ich habe hier niemand nach ein BOOT oder sonst irgendwas gefragt! Script wurde überabreitet jetzt ist GOOGLE drinne :thumbdown:

  • Hallo baris,

    es gibt in deinem derzeitigen Skriptstand nichts zu stoppen, also erkläre, was du genau vor hast: denn auch ein folgender Auto-Login benötigt keine Schleife die man pausieren kann

    Edit: oder ist http://www.deutsche-bank.de garnicht die richtige Adresse?

    mfg autoBert

    auch bei Google gilt das gleiche, ohne Skript(-Beispiel) wo es Sinn macht ist kein Stop möglich

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (20. August 2010 um 15:46)

  • auch bei Google gilt das gleiche, ohne Skript(-Beispiel) wo es Sinn macht ist kein Stop möglich

    mfg autoBert


    Ok, schau ich habe hier ein timer entwickelt. Wenn der timer gestartet wurde, will ich das ich mit dem Stop button alles abbreche und der wieder darauf wartet das ich irgendwas starte (der soll die ausgangsposition wieder einnehmen)


    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=F:\firewall.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <GuiSlider.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <Date.au3>
    #include <DateTimeConstants.au3>
    #include <ComboConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Timer", 320, 436, 192, 114)
    $Combo1 = GUICtrlCreateCombo("", 80, 95, 161, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL,$CBS_DROPDOWNLIST ))
    $combo = GUICtrlSetData(-1, "Herunterfahren|Neu Starten|Schlafmodus", "Herunterfahren")
    $Slider1 = GUICtrlCreateSlider(16, 150, 281, 25)
    GUICtrlSetLimit(-1, 4, 0)
    $Group1 = GUICtrlCreateGroup("", 10, 135, 295, 60)
    $Progress1 = GUICtrlCreateProgress(0, 350, 320, 35)
    $Label2 = GUICtrlCreateLabel("1", 26, 175, 10, 17)
    $Label3 = GUICtrlCreateLabel("2", 89, 175, 10, 17)
    $Label4 = GUICtrlCreateLabel("3", 152, 175, 10, 17)
    $Label5 = GUICtrlCreateLabel("4", 216, 175, 10, 17)
    $Label6 = GUICtrlCreateLabel("5", 280, 175, 10, 17)
    $Start = GUICtrlCreateButton("Start", 80, 260, 161, 41, $WS_GROUP)

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

    ;;;Manuell
    $input1 = GUICtrlCreateDate("", 125, 8, 82, 22, $DTS_TIMEFORMAT)
    GUICtrlSetState($input1, $GUI_DISABLE)

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

    $stop = GUICtrlCreateButton("Stop",0,200)
    $manuellstart = GUICtrlCreateButton("Manuell Start", 125, 40, 82, 20, $WS_GROUP)
    GUICtrlSetState($manuellstart, $GUI_DISABLE)
    $manuell = GUICtrlCreateButton("->", 65, 10, 50, 20, $WS_GROUP)
    $zueruck = GUICtrlCreateButton("X", 218, 10, 20, 20, $WS_GROUP)
    GUICtrlSetState($zueruck, $GUI_DISABLE)
    ;;;;;
    $prozent = GUICtrlCreateLabel("", 150, 320, 200, 30)
    $selftime = GUICtrlCreateLabel("", 28, 213, 200, 30)
    GUICtrlSetColor(-1, 0x008000)
    GUICtrlSetFont(-1, 18, 800, 0, "Palatino Linotype")
    GUICtrlSetState($selftime, $GUI_HIDE)

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

    $selftime2 = GUICtrlCreateLabel("", 210, 213, 200, 30)
    GUICtrlSetFont(-1, 18, 800, 0, "Palatino Linotype")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetState($selftime2, $GUI_HIDE)
    $Group5 = GUICtrlCreateGroup("Aktuell", 10, 200, 120, 53)
    GUICtrlSetState($Group5, $GUI_HIDE)
    $Group6 = GUICtrlCreateGroup("Ende", 190, 200, 120, 53)
    GUICtrlSetState($Group6, $GUI_HIDE)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1

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

    $nMsg = GUIGetMsg()

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

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $stop
    ??????????????????

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

    Case $Start
    $Sliderrueckgabewert = GUICtrlRead($Slider1)

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

    GUICtrlSetState($Slider1, $GUI_DISABLE)
    GUICtrlSetState($Start, $GUI_DISABLE)
    GUICtrlSetState($manuell, $GUI_DISABLE)
    GUICtrlSetState($Combo1, $GUI_DISABLE)

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

    $hotkey = HotKeySet("{esc}", "_exit")
    _Slider()

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

    Case $manuell
    GUICtrlSetState($manuellstart, $GUI_enable)
    GUICtrlSetState($Progress1, $GUI_HIDE)
    GUICtrlSetState($input1, $GUI_enable)
    GUICtrlSetState($zueruck, $GUI_enable)
    GUICtrlSetState($manuell, $GUI_DISABLE)
    GUICtrlSetState($Group5, $GUI_SHOW)
    GUICtrlSetState($Group6, $GUI_SHOW)

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

    ;
    GUICtrlSetState($Start, $GUI_HIDE)
    GUICtrlSetState($Slider1, $GUI_HIDE)
    GUICtrlSetState($Label2, $GUI_HIDE)
    GUICtrlSetState($Label3, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_HIDE)
    GUICtrlSetState($Label5, $GUI_HIDE)
    GUICtrlSetState($Label6, $GUI_HIDE)
    GUICtrlSetState($Group1, $GUI_HIDE)

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

    Case $zueruck
    GUICtrlSetState($Slider1, $GUI_enable)
    GUICtrlSetState($Start, $GUI_enable)
    GUICtrlSetState($manuell, $GUI_enable)
    GUICtrlSetState($manuellstart, $GUI_DISABLE)
    GUICtrlSetState($input1, $GUI_DISABLE)
    GUICtrlSetState($zueruck, $GUI_DISABLE)
    GUICtrlSetState($Group5, $GUI_HIDE)
    GUICtrlSetState($Group6, $GUI_HIDE)
    GUICtrlSetState($Start, $GUI_SHOW)
    GUICtrlSetState($Slider1, $GUI_SHOW)
    GUICtrlSetState($Label2, $GUI_SHOW)
    GUICtrlSetState($Label3, $GUI_SHOW)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Label5, $GUI_SHOW)
    GUICtrlSetState($Label6, $GUI_SHOW)
    GUICtrlSetState($Group1, $GUI_SHOW)
    GUICtrlSetState($Progress1, $GUI_SHOW)

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

    Case $manuellstart
    $hotkey = HotKeySet("{esc}", "_exit")
    $comboauslesen = GUICtrlRead($Combo1)
    GUICtrlSetState($selftime, $GUI_SHOW)
    GUICtrlSetState($selftime2, $GUI_SHOW)
    GUICtrlSetState($zueruck, $GUI_DISABLE)
    GUICtrlSetState($manuellstart, $GUI_DISABLE)
    GUICtrlSetState($input1, $GUI_DISABLE)
    GUICtrlSetState($Combo1, $GUI_DISABLE)
    $restwert = @HOUR & ":" & @MIN & ":" & @SEC

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

    GUICtrlSetData($selftime2, GUICtrlRead($input1))
    $ende = GUICtrlRead($input1)

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

    While 1
    $restwert11 = @HOUR & @MIN & @SEC
    GUICtrlSetData($selftime, @HOUR & ":" & @MIN & ":" & @SEC)
    $text1 = StringReplace($ende, ":", "")

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

    If $restwert11 = $text1 Then
    _Combobox()
    EndIf

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

    Sleep(200)
    WEnd

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

    EndSwitch

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

    WEnd

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

    Func _Combobox()
    GUICtrlRead($Combo1)
    If $comboauslesen = "Herunterfahren" Then Shutdown(4)
    If $comboauslesen = "Neu Starten" Then Shutdown(6)
    If $comboauslesen = "Schlafmodus" Then
    Shutdown(64)
    Exit
    EndIf

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

    EndFunc ;==>_Combobox

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

    Func _Slider()

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

    If $Sliderrueckgabewert == 0 Then

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

    For $i = 0 To 100 Step 1
    GUICtrlSetData($prozent, $i & " %")
    _Zeitende()
    Sleep(36000)
    GUICtrlSetData($Progress1, $i)
    Next
    MsgBox(262192, "Shutdown Manager ", "PC wird Heruntergefahren", 5)
    back()
    Shutdown(1)
    EndIf
    If $Sliderrueckgabewert == 1 Then
    For $s = 0 To 100 Step 1
    GUICtrlSetData($prozent, $s & " %")
    _Zeitende()
    Sleep(36000 * 2)
    GUICtrlSetData($Progress1, $s)
    Next
    MsgBox(262192, "Shutdown Manager ", "PC wird Heruntergefahren", 5)
    back()
    _Combobox()
    EndIf
    If $Sliderrueckgabewert == 2 Then
    For $a = 0 To 100 Step 1
    GUICtrlSetData($prozent, $a & " %")
    _Zeitende()
    Sleep(36000 * 3)
    GUICtrlSetData($Progress1, $a)
    Next
    MsgBox(262192, "Shutdown Manager ", "PC wird Heruntergefahren", 5)
    back()
    _Combobox()
    EndIf
    If $Sliderrueckgabewert == 3 Then
    For $b = 0 To 100 Step 1
    GUICtrlSetData($prozent, $b & " %")
    _Zeitende()
    Sleep(36000 * 4)
    GUICtrlSetData($Progress1, $b)
    Next
    MsgBox(262192, "Shutdown Manager ", "PC wird Heruntergefahren", 5)
    back()
    _Combobox()
    EndIf
    If $Sliderrueckgabewert == 4 Then
    For $c = 0 To 100 Step 1
    GUICtrlSetData($prozent, $c & " %")
    _Zeitende()
    Sleep(36000 * 5)
    GUICtrlSetData($Progress1, $c)
    Next
    MsgBox(262192, "Shutdown Manager ", "PC wird Heruntergefahren", 5)
    back()
    _Combobox()
    EndIf
    EndFunc ;==>_Slider

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

    Func _exit()
    $msgbox = MsgBox(262180, "Shutdown Manager ", "Shutdown Manager beenden?")
    If $msgbox == 6 Then
    Exit
    EndIf

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

    EndFunc ;==>_exit

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

    Func back()
    GUICtrlSetState($Slider1, $GUI_enable)
    GUICtrlSetState($Start, $GUI_enable)
    GUICtrlSetData($Progress1, -100)
    EndFunc ;==>back

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

    Func _Zeitende()
    $antwortprogressbar = GUICtrlRead($Progress1)

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

    If $antwortprogressbar = 80 Then
    TrayTip("Shutdown Manager", "Rechner wird in kürze heruntergefahren", 0, 1)
    Sleep(10000)
    TrayTip("Leert einen Traytip", "", 0)
    EndIf
    EndFunc ;==>_Zeitende

    [/autoit]
  • Hallo baris,

    ändere den Case-Zweig so ab:

    Spoiler anzeigen
    [autoit]

    Case $manuellstart
    $ok =True
    $hotkey = HotKeySet("{esc}", "_exit")
    $comboauslesen = GUICtrlRead($Combo1)
    GUICtrlSetState($selftime, $GUI_SHOW)
    GUICtrlSetState($selftime2, $GUI_SHOW)
    GUICtrlSetState($zueruck, $GUI_DISABLE)
    GUICtrlSetState($manuellstart, $GUI_DISABLE)
    GUICtrlSetState($input1, $GUI_DISABLE)
    GUICtrlSetState($Combo1, $GUI_DISABLE)
    $restwert = @HOUR & ":" & @MIN & ":" & @SEC

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

    GUICtrlSetData($selftime2, GUICtrlRead($input1))
    $ende = GUICtrlRead($input1)

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

    While 1 and $ok
    $restwert11 = @HOUR & @MIN & @SEC
    GUICtrlSetData($selftime, @HOUR & ":" & @MIN & ":" & @SEC)
    $text1 = StringReplace($ende, ":", "")

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

    If $restwert11 = $text1 Then
    _Combobox()
    EndIf
    $ok =GUIGetMsg() <> $stop

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

    Sleep(200)
    WEnd

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

    aber was hat das ganze mit dem IE zu tun?

    mfg (Auto)Bert

  • Danke Bert , genau das habe ich gesucht ;)

    das hat garnichts mit dem ie zu tun ^^ ich war nur auf der arbeit und hatte mein timer nicht da... mir ging es nur darum irgendwie den befehl zu canceln