Script sich von neu starten lassen

  • Ich bin neu hier, und es tut mir leid wen es schon besprochen wurde. Da ich noch anfänger bin wuste ich nicht nach was ich suchen soll deshalb hab ich bestimmt nichts gefunden.
    Kann mir bitte jemand sagen ob es eine möglichkeit gibts das der Script sich selbst von neu startet?
    Also wollte mal ne kleine Frage zum spaß machen und an meinen Freund schicken.
    So sieht es aus:

    [autoit]

    $frage = MsgBox(36,"Sag lieber die Wahrheit!","Hast du schon mal gelogen?")

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

    If $frage = 6 Then
    MsgBox(48,"Lügner!","Dir glaube ich nie mehr!")
    ElseIf $frage = 7 Then
    $nein = MsgBox(48,"Lügner!","Schon wieder gelogen!")
    EndIf

    [/autoit]


    Mein Problem ist das ich nicht weiß wie ich jetzt den script dazu bringen soll das alles von vorne begint wenn mach zuerst Nein drückt und in nächte Box auf OK. Deshalb dachte ich vllt gibt es einen Befehl der dafür sorgt das der Script sich von vorne startet.
    Deshalb steht da gerade bei mir $nein = MsgBox(48,"Lügner!","Schon wieder gelogen!"). Ich dachte zuerst mache irgendwie weiteres if aber kp wie ich jetzt es machen soll. ?(

  • Danke, aber ich verstehe die func funktion nicht ganz, und wie soll ich While einsetzen? Hab versucht aber irgendwie ist nichts draus geworden. Kannst du mir bitte ein Beispiel geben? Ich kann am besten von Beispielen lernen. :)

  • [autoit]

    HotKeySet("{ESC}", "_end")
    while 1

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

    $frage = MsgBox(36,"Sag lieber die Wahrheit!","Hast du schon mal gelogen?")

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

    If $frage = 6 Then
    MsgBox(48,"Lügner!","Dir glaube ich nie mehr!")
    ElseIf $frage = 7 Then
    $nein = MsgBox(48,"Lügner!","Schon wieder gelogen!")
    EndIf
    WEnd

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

    func _end()
    Exit
    EndFunc

    [/autoit]

    so läuft´s endlos... Ende mit ESC.

    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Danke, das bringt mir aber nicht viel, weil ich wollte das es von neu anfängt wenn man auf Nein drückt.

  • Ich würde es so schreiben (ausgehend von Deinem Beispiel):

    [autoit]

    Do
    $frage = MsgBox(36,"Sag lieber die Wahrheit!","Hast du schon mal gelogen?")

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

    If $frage = 6 Then
    MsgBox(48,"Lügner!","Dir glaube ich nie mehr!")
    ElseIf $frage = 7 Then
    $nein = MsgBox(48,"Lügner!","Schon wieder gelogen!")
    EndIf
    Until $frage <> 7

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Hallo.

    Xenobiologist hatte mal eine Funktion geschrieben. Schau Dir die mal an.

    Spoiler anzeigen
    [autoit]


    ; Script from Xenobiologist autoit-germany
    _restart()

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

    Func _restart()
    If @Compiled = 1 Then
    MsgBox(0,"Test","Test")
    Run( FileGetShortName(@ScriptFullPath))
    Else
    MsgBox(0,"Test2","Test2")
    Run( FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath))
    EndIf
    Exit
    EndFunc

    [/autoit]

    Gruss, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Du mußt nicht mir danken, sondern Xenobiologist.
    Er hat es geschrieben, aber das hatte ich dazu geschrieben.

    LG, Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Hi,

    ich habe mir auch mal eine solche Funktion geschrieben, allerdings nur für kompilierte Skripte. Bei mir lassen sich jedoch noch optionale Parameter und der ExitCode übergeben. Habe das Ganze mal mit Mega's "gemerged"! Hier ein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Exit main()

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

    Func OnAutoItStart()
    Opt("MustDeclareVars", 1)
    EndFunc ;==>OnAutoItStart

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

    Func main()
    Local $i_count = 0, $i_w = 60, $h_btrestart = 0, $h_lblcount = 0
    If $cmdline[0] Then $i_count = $cmdline[1]

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

    GUICreate("_AutoItRestart", $i_w, 40, -1, -1, $WS_POPUP)
    $h_btrestart = GUICtrlCreateButton("&Restart", 0, 0, $i_w, 20)
    $h_lblcount = GUICtrlCreateLabel($i_count, 0, 20, $i_w, 20)

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

    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Return 0
    Case $h_btrestart
    _AutoItRestart($i_count + 1)
    EndSwitch
    WEnd
    EndFunc ;==>main

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

    ;===============================================================================
    ; Function Name.....: _AutoItRestart
    ; Description.......: Restarts an compiled or uncompiled AutoIt script.
    ; Version...........: 1.0.1
    ; Change Date.......: 2008-09-10
    ; AutoIt Version....: 3.2.12.1
    ;
    ; Parameter(s)......: $S_PARAM - [optional] String specifying parameter(s) for the script to run. (default = "")
    ; $I_EXIT - [optional] Integer specifying the return code of the script. (default = 0)
    ; Requirements(s)...: None
    ; Return Value(s)...: Failure: Returns 0 and sets @error to 1 if unable to run the script.
    ;
    ; Author(s).........: - Xenobiologist
    ; - teh_hahn
    ; Company...........: None
    ; URL...............: None
    ; Note(s)...........: None
    ;===============================================================================
    Func _AutoItRestart(Const $S_PARAM = "", Const $I_CODE = 0)
    Local $s_cmd = '"' & @ScriptFullPath & '"'
    If StringLen($S_PARAM) Then $s_cmd &= " " & $S_PARAM

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

    If @Compiled Then
    Run($s_cmd)
    Else
    Run(@AutoItExe & " " & $s_cmd)
    EndIf
    If @error Then Return SetError(@error, 0, 0)

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

    Exit $I_CODE
    EndFunc ;==>_AutoItRestart

    [/autoit]


    Beendet wird es mit "ESC"...

  • hi,

    da wir grad beim thema neu starten sind wüsste ich mal gerne, ob man ein skript nun wirklich neu starten kann. es wahre sehr hilfreich und würde mir viel arbeit erspahren. da bei meinem skript die änderenungen am programm erst bei einem neu start wirkich übernommen werden.

  • Ähm... Ja, siehe meinen Post oben. Wenn Du z.B. INI-Einstellungen vor dem Neustart setzt und die jeweils bei Programmstart ausliest, so würde dies logischerweise greifen...