Autoupdater/Autoinstaller

  • Problem bei eigenem Autoinstaller


    Hi ich habe schon sehr lange mit Autoit nichts mehr gemacht
    weil mir einfach die Zeit fehlte desshalb bin ich mal wieder eingerostet
    :thumbdown:

    Nun möchte ich in diesem Script erreichen das wenn ich einen Button
    drücke das Programm gestartet wird wenn schon installiert ist.

    Falls es nicht installiert ist soll es schauen ob eine exe vorhanden ist
    wenn ja installieren wenn nein die neuste exe aus dem internet ziehen.

    Ich hab im Moment noch keinen blassen Schimmer wie ich das anstellen soll ?(


    Gruss Ru642

    [autoit]

    #include <GUIConstants.au3>

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

    $Form = GUICreate("Autoinstaller v0.1", 363, 443, 712, 384)
    $Progress = GUICtrlCreateProgress(24, 360, 313, 25)
    $Label1 = GUICtrlCreateLabel("Label1", 24, 320, 300, 25)
    $Button = GUICtrlCreateButton("Update", 104, 400, 153, 33, 0)
    $Button1 = GUICtrlCreateButton("Firefox", 8, 8, 83, 33, 0)
    $Button2 = GUICtrlCreateButton("Skype", 96, 8, 83, 33, 0)
    $Button3 = GUICtrlCreateButton("Openoffice", 184, 8, 83, 33, 0)
    $Button4 = GUICtrlCreateButton("Autoit", 272, 8, 81, 33, 0)
    $Button5 = GUICtrlCreateButton("Avira", 8, 48, 81, 33, 0)
    $Button7 = GUICtrlCreateButton("-", 96, 48, 81, 33, 0)
    $Button8 = GUICtrlCreateButton("-", 184, 48, 81, 33, 0)
    $Button9 = GUICtrlCreateButton("-", 272, 48, 81, 33, 0)
    $Button10 = GUICtrlCreateButton("-", 8, 88, 81, 33, 0)
    $Button11 = GUICtrlCreateButton("-", 96, 88, 81, 33, 0)
    $Button12 = GUICtrlCreateButton("-", 184, 88, 81, 33, 0)
    $Button13 = GUICtrlCreateButton("-", 272, 88, 81, 33, 0)
    $Progress1 = GUICtrlCreateProgress(24, 360, 313, 25)
    GUISetState(@SW_SHOW)

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

    While 1

    If Not FileExists (@ScriptDir & "\programs") Then
    DirCreate(@ScriptDir & "\programs")
    EndIf

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

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

    EndSwitch
    WEnd

    [/autoit]
  • Kommt darauf an, um welche Programme es sich handelt. Du müsstest zuerst mal von jedem Programm wissen, wo du immer die neuste exe herkriegst. Die soltest du dann mit InetGet kriegen. Das starten sollte ja nicht so ein Problem sein. Einfach Run. Wie du aber feststellen willst, ob die Installations-exe schon vorhanden ist, weis ich nicht. Du müsstest wohl einen Pfad festlegen in dem die exe liegen könnte und dann schauen ob die da liegt (FileExists). Ob das Programm installiert ist lässt sich auch relativ leicht feststellen, solange du den Installationspfad nicht änderst (ebenfalls FileExists).

    Gruss Shadowigor

  • Wenn das Programm bei der Installation Registry-Keys setzt, dann sparst du dir das Pfad-Suchen für die installierten Programme; einfach die Auslesen.
    Wenn das Programm nicht installiert ist, würde ich dir folgenden Tipp geben:
    Erst in Standardpfaden (z. B. Downloads) nach der .exe suchen und dann ein Auswahlfeld erstellen:
    Dateipfad manuell wählen/Aktuelle Datei herunterladen und Installieren.
    Weiß nicht, wie das inzwischen üblich ist unter Win (bin seit längerem vor allem auf Mac), aber ein guter Platz für die Versionsnummer war die Registry.
    Sollte die Versionsnummer da liegen, kannst du sie ja mit der aktuellen Versionsnummer auf dem Server (in einer Textdatei o. Ä. , mit InetGet herunterladen und einlesen) vergleichen, und dann ein Feld anzeigen von wegen: Ihre Version ist veraltet. Soll die aktuelle Version heruntergeladen werden?

    (RegRead)

    Widerstand ist Zwecklos!

    Meine Projekte: Kizzys Controller, 2nd Desktop und Versteckte Dateien Assistent
    Meine Downloadwebsite .

  • In ...\AutoIt3\Extras\AutoUpdateIt\ befindet sich ein Beispielprogramm: AutoUpdateIt.au3, welches bei Bedarf AutoIt updatet. Ein Blick in das Skript kann nicht schaden,

    mfg autoBert