Problem mit If und EndIf

  • Hallo zusammen,

    ich habe ein Problem mit meinem Script zur Installation von AutoIt.
    Er meldet was von fehlendem EndIf Statement.
    Ich bin den Code jetzt schon mehrmals durchgegangen, aber
    ich finde den Fehler nicht...
    Vielleicht kann mir jemand auf die Sprünge helfen?

    Vielen Dank
    Jörg

    Spoiler anzeigen
    [autoit]

    #region ### Variablen ###
    $Ver = "3.3.0.0"
    $Inst = "AutoIt v" & $Ver & " Setup"
    #endregion ### Variablen ###

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

    #region ### Check old Version ###
    If Not FileExists(@ProgramFilesDir & "\AutoIt3") Then
    _instautoit()
    ElseIf FileGetVersion(@ProgramFilesDir & "\AutoIt3\" & "AutoIt3.exe") < $Ver Then
    _uninstautoit()

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

    Func _uninstautoit()
    ShellExecuteWait(@ProgramFilesDir & "\AutoIt3\Uninstall.exe")
    WinWait("AutoIt v", "Uninstall AutoIt")
    ControlClick("AutoIt v", "Uninstall", "Button2")
    WinWait("AutoIt v", "Uninstallation Complete")
    ControlClick("AutoIt v", "Close", "Button2")
    EndIf
    If FileExists(@ProgramFilesDir & "\AutoIt3") Then
    DirRemove(@ProgramFilesDir & "\AutoIt3",1)
    EndIf
    #endregion ### Check old Version ###
    EndFunc

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

    Func _instautoit()
    #region ### Installation ###
    run("autoit-v" & $Ver & "-setup.exe")
    WinWait($Inst, "Welcome to the AutoIt")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "License Agreement")
    ControlClick($Inst, "I Agree", "Button2")
    WinWait($Inst, "Defaults for *.au3")
    ControlCommand($Inst, "Edit the script", "Button5", "Check", "")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "Choose Components")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "Choose Install Location")
    ControlSetText($Inst, "Choose the folder in which to install", "Edit1", "C:\Programme\AutoIt3")
    ControlFocus($Inst, "Install", "Button2")
    ControlClick($Inst, "Install", "Button2")
    WinWait($Inst, "Completing the AutoIt v"&$Ver&" Setup Wizard")
    ControlClick($Inst, "Show release notes", "Button4")
    ControlFocus($Inst, "Finish", "Button2")
    ControlClick($Inst, "Finish", "Button2")
    #endregion ### Installation ###

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

    #region ### Deutsches Helpfile kopieren ###
    FileCopy(@ProgramFilesDir & "\AutoIt3\AutoIt.chm", @ProgramFilesDir & "\AutoIt3\AutoIt_englisch.chm", 1)
    ;FileCopy("AutoIt_deutsch.chm", @ProgramFilesDir & "\AutoIt3\AutoIt.chm", 1)
    FileCopy("*.chm", @ProgramFilesDir & "\AutoIt3\", 1)
    #endregion ### Deutsches Helpfile kopieren ###
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Baruse (16. Januar 2009 um 14:31)

  • packe den Inhalt von Zeile 18 nach Zeile 11 (EndIF)

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • zuerstma nimmt man die funcs raus... ;) und dann könnte es evt auch schon stimmen: hier der korriegierte code:

    Spoiler anzeigen
    [autoit]

    #region ### Variablen ###
    $Ver = "3.3.0.0"
    $Inst = "AutoIt v" & $Ver & " Setup"
    #endregion ### Variablen ###

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

    #region ### Check old Version ###
    If Not FileExists(@ProgramFilesDir & "\AutoIt3") Then
    _instautoit()
    ElseIf FileGetVersion(@ProgramFilesDir & "\AutoIt3\" & "AutoIt3.exe") < $Ver Then
    _uninstautoit()
    EndIf

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

    Func _uninstautoit()
    ShellExecuteWait(@ProgramFilesDir & "\AutoIt3\Uninstall.exe")
    WinWait("AutoIt v", "Uninstall AutoIt")
    ControlClick("AutoIt v", "Uninstall", "Button2")
    WinWait("AutoIt v", "Uninstallation Complete")
    ControlClick("AutoIt v", "Close", "Button2")
    If FileExists(@ProgramFilesDir & "\AutoIt3") Then
    DirRemove(@ProgramFilesDir & "\AutoIt3",1)
    EndIf
    #endregion ### Check old Version ###
    EndFunc

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

    Func _instautoit()
    #region ### Installation ###
    run("autoit-v" & $Ver & "-setup.exe")
    WinWait($Inst, "Welcome to the AutoIt")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "License Agreement")
    ControlClick($Inst, "I Agree", "Button2")
    WinWait($Inst, "Defaults for *.au3")
    ControlCommand($Inst, "Edit the script", "Button5", "Check", "")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "Choose Components")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "Choose Install Location")
    ControlSetText($Inst, "Choose the folder in which to install", "Edit1", "C:\Programme\AutoIt3")
    ControlFocus($Inst, "Install", "Button2")
    ControlClick($Inst, "Install", "Button2")
    WinWait($Inst, "Completing the AutoIt v"&$Ver&" Setup Wizard")
    ControlClick($Inst, "Show release notes", "Button4")
    ControlFocus($Inst, "Finish", "Button2")
    ControlClick($Inst, "Finish", "Button2")
    #endregion ### Installation ###

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

    #region ### Deutsches Helpfile kopieren ###
    FileCopy(@ProgramFilesDir & "\AutoIt3\AutoIt.chm", @ProgramFilesDir & "\AutoIt3\AutoIt_englisch.chm", 1)
    ;FileCopy("AutoIt_deutsch.chm", @ProgramFilesDir & "\AutoIt3\AutoIt.chm", 1)
    FileCopy("*.chm", @ProgramFilesDir & "\AutoIt3\", 1)
    #endregion ### Deutsches Helpfile kopieren ###
    EndFunc

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Spoiler anzeigen
    [autoit]


    #region ### Variablen ###
    $Ver = "3.3.0.0"
    $Inst = "AutoIt v" & $Ver & " Setup"
    #endregion ### Variablen ###

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

    #region ### Check old Version ###
    If Not FileExists(@ProgramFilesDir & "\AutoIt3") Then
    _instautoit()
    ElseIf FileGetVersion(@ProgramFilesDir & "\AutoIt3\" & "AutoIt3.exe") < $Ver Then
    _uninstautoit()
    EndIf

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

    Func _uninstautoit()
    ShellExecuteWait(@ProgramFilesDir & "\AutoIt3\Uninstall.exe")
    WinWait("AutoIt v", "Uninstall AutoIt")
    ControlClick("AutoIt v", "Uninstall", "Button2")
    WinWait("AutoIt v", "Uninstallation Complete")
    ControlClick("AutoIt v", "Close", "Button2")
    If FileExists(@ProgramFilesDir & "\AutoIt3") Then
    DirRemove(@ProgramFilesDir & "\AutoIt3",1)
    EndIf
    #endregion ### Check old Version ###
    EndFunc

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

    Func _instautoit()
    #region ### Installation ###
    run("autoit-v" & $Ver & "-setup.exe")
    WinWait($Inst, "Welcome to the AutoIt")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "License Agreement")
    ControlClick($Inst, "I Agree", "Button2")
    WinWait($Inst, "Defaults for *.au3")
    ControlCommand($Inst, "Edit the script", "Button5", "Check", "")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "Choose Components")
    ControlClick($Inst, "Next", "Button2")
    WinWait($Inst, "Choose Install Location")
    ControlSetText($Inst, "Choose the folder in which to install", "Edit1", "C:\Programme\AutoIt3")
    ControlFocus($Inst, "Install", "Button2")
    ControlClick($Inst, "Install", "Button2")
    WinWait($Inst, "Completing the AutoIt v"&$Ver&" Setup Wizard")
    ControlClick($Inst, "Show release notes", "Button4")
    ControlFocus($Inst, "Finish", "Button2")
    ControlClick($Inst, "Finish", "Button2")
    #endregion ### Installation ###

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

    #region ### Deutsches Helpfile kopieren ###
    FileCopy(@ProgramFilesDir & "\AutoIt3\AutoIt.chm", @ProgramFilesDir & "\AutoIt3\AutoIt_englisch.chm", 1)
    ;FileCopy("AutoIt_deutsch.chm", @ProgramFilesDir & "\AutoIt3\AutoIt.chm", 1)
    FileCopy("*.chm", @ProgramFilesDir & "\AutoIt3\", 1)
    #endregion ### Deutsches Helpfile kopieren ###
    EndFunc

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

    Edit: Da warn wohl welche schneller^^ ;)