Auf vorhandene Installation überprüfen

  • Hallo

    Also ich bin gerade dabei folgendes zu machen autoit soll eine routine durchlaufen bei der vorhanden installationen und versionen überprüft werden, falls nicht vorhanden soll es die installieren
    es geht darum zu püfen ist flashplayer 10 auf dem system vorhanden wenn nicht installieren das selbe für adobe reader 9
    ich bin schon mal soweit das ich die browser schließen kann und die installationsroutine aufrufen kann, aber wie frage ich ab ob die aktuelle version bereits auf dem system vorhanden ist ? und den installprozess ein skip zuweisen falls ja
    sinn und zweck des ganzen ist das es sich hier um eine flash präsenation handelt und der benutzer soll einfach nur auf eine exe klicken und der rest läuft von selbst

    Code
    ProcessClose("iexplore.exe")
    ProcessClose("firefox.exe")
    ;wie kann ich hier überprüfen ob die aktuelle version des flashplayer 10 bereits installiert ist
    ShellExecuteWait(@ScriptDir &"\Installation\install_flash_player.exe")
    ;wie kann ich hier überprüfen ob die aktuelle version des adobe reader 9 bereits installiert ist
    ShellExecuteWait(@ScriptDir &"\Installation\install_reader.exe")
    ShellExecute(@ScriptDir &"\script\index.html")
    • Offizieller Beitrag

    Ich habe mal auf die Schnelle zwei Funktionen erstellt:

    Spoiler anzeigen
    [autoit]


    MsgBox(0,'FlashPlayer-Version',_GetFlashPlayerVersion())
    MsgBox(0,'AdobeReader-Version',_GetAdobeReaderVersion())

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

    Func _GetFlashPlayerVersion()
    Local $sVersion, $sKey
    If @OSArch = 'X86' Then
    $sKey = 'HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer'
    Else
    $sKey = 'HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Macromedia\FlashPlayer'
    EndIf
    $sVersion = RegRead($sKey, 'CurrentVersion')
    Return SetError(@error, 0, $sVersion)
    EndFunc

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

    Func _GetAdobeReaderVersion()
    Local $sVersion, $sKey
    If @OSArch = 'X86' Then
    $sKey = 'HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader'
    Else
    $sKey = 'HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Adobe\Acrobat Reader'
    EndIf
    $sVersion = RegEnumKey($sKey, 1)
    Return SetError(@error, 0, $sVersion)
    EndFunc

    [/autoit]
  • Wirklich nützlich mach doch ne UDF draus und stell sie ins Database oder in die UDF übersicht. (wurde vor kurzem wurde der Script im [KORRIGIERT:] Projekt Forum vorgestellt) echt super job !!!!!!!! :thumbup: :thumbup: :thumbup: :thumbup:

    3 Mal editiert, zuletzt von Ubuntu (12. Dezember 2009 um 18:02)

  • Super Sache :)
    Hab mich korrigiert es war das Projekt Frum (s.o.)

    mal ne wirklich nützliche UDF , :thumbup:

    mfg Ubuntu

  • Wollte nur mal zeigen was dank deiner Hilfe daraus geworden ist

    Der Programmablauf sieht inetwa wie folgt aus

    Die exe extrahiert eine komplete Presentation (über 1000 Files hiernicht enthalten) in c/windows/temp mit progressbar auf der gui
    Dann wenn man auf run Presentation klickt wird geprüft ist adobe reader und adobe flash player am system und bei Bedarf nachinstalliert (zwei programme die für die Presentation benötigt werden)
    der Ablauf wird immer auf der Gui mit progress angezeigt
    danach wird die index.html mit der flash presentation ausgeführt also das ist mein erstes autoit project (mit Hilfe) aber ich bin total begeistert was das alles kann

    Nun habe ich eine sehr sehr einfache Oberfläche für meine Kunden sie brauchen sich quasi um nichts zu kümmern und können eine tolle Presentation genießen ohne irgendwas nachinstallieren zu müssen

    im anhang die uncombilierte ac3 zum reinsehen wie ich alles gelöst habe

    • Offizieller Beitrag

    Also ich bin ja "schreibfaul". ;)
    Ich hätte die 1000 Files lieber mit 7Zip gepackt und dann das 7zip-Archiv sowie die 7zip-Exe per FileInstall integriert.
    Das Script kann dann das Archiv irgendwohin temporär entpacken. Damit würdest Du Dir auch die Zeilen mir DirCreate sparen, weil 7zip die Ordnerstruktur übernimmt/erstellt.

    Aber ansonsten ist das für ein erstes Projekt schon ganz ordentlich. :)