Else - if --> ich werde wahnsinnig!

  • Hallo zusammen,

    ich glaube ich blick mit den verschachtelten If-Else Anweisungen nicht mehr durch.
    Aufgabenstellung:
    Prüfung ob Pfad bereits vorhanden - wenn nein dann iInstallation der Software
    wenn ja, dann Prüfung der Dateiversion; wenn älter, dann Installation, wenn nicht dann Ende.

    Hier mal mein Versuch:

    Spoiler anzeigen
    [autoit]


    $NewVer = "4.4.0.0"
    If FileExists(@ProgramFilesDir & "\Notepad++") Then
    $ver = FileGetVersion(@ProgramFilesDir & "\Notepad++\" & "notepad++.exe")
    If($ver < $NewVer) Then
    ElseIf
    #region ### Installation
    run ("npp.4.4.Installer.exe")
    WinWait ("Installer Language", "Please select a language")
    ControlCommand("Installer Language", "Please select a language", "ComboBox1", "SelectString", "Deutsch")
    ControlClick("Installer Language", "Please select a language", "Button1")
    WinWait ("Notepad++ v4.4 Installation", "Willkommen beim Installations-")
    ControlClick("Notepad++ v4.4 Installation", "Weiter", "Button2")
    WinWait ("Notepad++ v4.4 Installation", "Lizenzabkommen")
    ControlClick("Notepad++ v4.4 Installation", "Annehmen", "Button2")
    WinWait ("Notepad++ v4.4 Installation", "Zielverzeichnis auswählen")
    ControlSetText("Notepad++ v4.4 Installation", "Zielverzeichnis auswählen", "Edit1","C:\Programme\Notepad++\" )
    ControlFocus("Notepad++ v4.4 Installation", "Weiter", "Button2")
    ControlClick("Notepad++ v4.4 Installation", "Weiter", "Button2")
    WinWait ("Notepad++ v4.4 Installation", "Komponenten auswählen")
    ControlFocus("Notepad++ v4.4 Installation", "Komponenten auswählen", "SysTreeView321")
    Send("{DOWN},{DOWN},{DOWN},{DOWN},{SPACE}")
    ControlFocus("Notepad++ v4.4 Installation", "Installieren", "Button2")
    ControlClick("Notepad++ v4.4 Installation", "Installieren", "Button2")
    WinWait ("Notepad++ v4.4 Installation", "Die Installation von Notepad++ v4.4 wird abgeschlossen")
    ControlCommand("Notepad++ v4.4 Installation", "Notepad++ v4.4 ausführen", "Button4", "UnCheck", "")
    ControlFocus("Notepad++ v4.4 Installation", "Fertig stellen", "Button2")
    ControlClick("Notepad++ v4.4 Installation", "Fertig stellen", "Button2")
    #endregion ### Installation
    EndIf
    EndIf

    [/autoit]

    Bitte nicht lachen - ich krieg das gerade einfach nicht in mein Hirn;
    wahrscheinlich wieder mal nur 'ne Lappalie

    VG
    Jörg

    • Offizieller Beitrag

    Hi,

    wieso prüfst du nicht so wie du es schreibst?

    Prüfung ob Pfad bereits vorhanden - wenn nein dann iInstallation der Software
    wenn ja, dann Prüfung der Dateiversion; wenn älter, dann Installation, wenn nicht dann Ende.

    If Not FileExists(...) Then install()
    und jetzt noch die Dateiversionsprüfung.

    So long,

    Mega

  • Hi,

    aber wo und wie genau bringe ich da die Dateiprüfung unter?
    ich kenne halt aus Batch Zeiten noch die Sprungmarken;
    damit kann ich es mir vorstellen:

    Prüfung ob Datei da ist:
    if not exist blabla goto install
    if Dateiversion = 4.4.0.0 goto end
    :install
    install.exe
    :end
    exit

    aber hier... ?(

    Wahrscheinlich hab ich nur wieder Tomaten auf den Augen :O

    • Offizieller Beitrag

    Hi,

    ja oder sowas:

    Spoiler anzeigen
    [autoit]

    $NewVer = "4.4.0.0"
    If Not FileExists(@ProgramFilesDir & "\Notepad++") Then
    _install()
    ElseIf FileGetVersion(@ProgramFilesDir & "\Notepad++\" & "notepad++.exe") < $NewVer Then
    _install()
    EndIf

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

    Func _install()
    Run("npp.4.4.Installer.exe")
    WinWait("Installer Language", "Please select a language")
    ControlCommand("Installer Language", "Please select a language", "ComboBox1", "SelectString", "Deutsch")
    ControlClick("Installer Language", "Please select a language", "Button1")
    WinWait("Notepad++ v4.4 Installation", "Willkommen beim Installations-")
    ControlClick("Notepad++ v4.4 Installation", "Weiter", "Button2")
    WinWait("Notepad++ v4.4 Installation", "Lizenzabkommen")
    ControlClick("Notepad++ v4.4 Installation", "Annehmen", "Button2")
    WinWait("Notepad++ v4.4 Installation", "Zielverzeichnis auswählen")
    ControlSetText("Notepad++ v4.4 Installation", "Zielverzeichnis auswählen", "Edit1", "C:\Programme\Notepad++\")
    ControlFocus("Notepad++ v4.4 Installation", "Weiter", "Button2")
    ControlClick("Notepad++ v4.4 Installation", "Weiter", "Button2")
    WinWait("Notepad++ v4.4 Installation", "Komponenten auswählen")
    ControlFocus("Notepad++ v4.4 Installation", "Komponenten auswählen", "SysTreeView321")
    Send("{DOWN},{DOWN},{DOWN},{DOWN},{SPACE}")
    ControlFocus("Notepad++ v4.4 Installation", "Installieren", "Button2")
    ControlClick("Notepad++ v4.4 Installation", "Installieren", "Button2")
    WinWait("Notepad++ v4.4 Installation", "Die Installation von Notepad++ v4.4 wird abgeschlossen")
    ControlCommand("Notepad++ v4.4 Installation", "Notepad++ v4.4 ausführen", "Button4", "UnCheck", "")
    ControlFocus("Notepad++ v4.4 Installation", "Fertig stellen", "Button2")
    ControlClick("Notepad++ v4.4 Installation", "Fertig stellen", "Button2")
    EndFunc ;==>_install

    [/autoit]

    So long,

    Mega

  • Lichter gehen auf 8)

    BugFix : verstehe ich, funktioniert auch, aber für mein Hirn (noch) schwer umzusetzen

    @Mega: die Variante ist für mich verständlicher, vielleicht weil sie mehr springt :D

    Vielen vielen Dank Euch Beiden!
    VG
    Jörg

  • wo wir grad bei versionen und sonem kram sind wie kann ich in einem nich nicht compiletieren script eine version festlegen?
    also wenn ich z.b. noch eine erweiterung mach dafür das wie versionsprüfung auch wirkung hat und die nich gleich sind weil meine .exe dateien haben alle die selbe nummer ;)

  • ok anscheinend hast du meine frage nich richtig verstanden^^
    also noch mal. ich würde gerne wissen wie ich die versionsnummer von einer .exe festlegen kann weil bei meinen bisherrigen programmen is die imma gleich.

    falls du noch den grund wissen willst...will das wissen weil sonst klappt das ja mit filegetversion nich so ne^^ ;)

    Einmal editiert, zuletzt von .::Mignon::. (23. Oktober 2007 um 16:45)

  • ok thx ;) aber sind das jetz 2 verschiedene wege oder einer??? weil da 2 mal das # zeichen vorhanden ist.

  • ok ich hab das mal kurz getestet und habe festgestellt das der string ganz in schwarz geschrieben is also autoit kennt den gar nicht ist das normal??? ;)

  • @mega teil mal bitte und in scite wird es nicht lila dargestellt sondern einfach nur schwarz!? kp warum hast du ne idee? ;)