1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. xKoGa

Beiträge von xKoGa

  • AutoIT Software Version Überprüfung

    • xKoGa
    • 29. April 2014 um 14:01

    Hallo zusammen,

    ich habe ein Problem, zwar möchte ich gerne in der Registry nach einer Software bzw. deren Version suchen, zB. "7-Zip" in dem Bereich "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" und "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData" ... habe mir auch schon mit Hilfe von Google und dem Forum hier etwas zusammen gebastelt:

    [autoit]


    Func _RegSearchPath($sRegPath, $sSearch)
    Local $sKey, $sVal, $sVar, $ret, $i = 0, $j = 0, $rueck
    While True
    $i += 1
    $sKey = RegEnumKey($sRegPath, $i)
    If @error Then ExitLoop
    $ret = _RegSearchPath($sRegPath & '\' & $sKey, $sSearch)
    If $ret <> '' Then ExitLoop
    $j = 0
    While True
    $j += 1
    $sVal = RegEnumVal($sRegPath & '\' & $sKey, $j)
    If @error Then ExitLoop
    $sVar = RegRead($sRegPath & '\' & $sKey, $sVal)
    If StringInStr($sVar, $sSearch, 2) Then
    ConsoleWrite($sRegPath & '\' & $sKey & '\' & $sVal & @CRLF)
    $rueck = ($sRegPath & '\' & $sKey)
    ExitLoop
    EndIf
    WEnd
    WEnd
    Return $rueck
    EndFunc

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

    $var1 = _RegSearchPath('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall', "7-Zip")
    $var2 = _RegSearchPath('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData', "7-Zip")

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

    if($var1 == "" AND $var2 == "") Then
    Exit -1
    Else
    if($var1 <> "") Then
    MsgBox(0, 'VAR1-Gefunden:', $var1)
    $var3 = RegRead($var1, 'DisplayVersion')
    EndIf
    if($var2 <> "") Then
    MsgBox(0, 'VAR2-Gefunden:', $var2)
    $var3 = RegRead($var1, 'DisplayVersion')
    EndIf
    EndIf
    MsgBox(0, 'VAR3-Gefunden:', $var3)

    [/autoit]

    Leider ist es noch weit weg vom perfekten Script ...

    Folgendes habe ich jedoch eigentlich vor, alles in einer Funktion:

    1. Suche nach Softwarename in den beiden Bereichen
    2. Prüfen ob Softwarename in DisplayName enthalten ist (Bei "7-Zip" ist es zB "7-Zip 9.20 (x64 edition)")
    2.1 Wenn nicht, dann weitersuchen
    2.2 Wenn doch, dann den Pfad mit return zurückgeben (ohne "DisplayName")
    3. Prüfen ob im Pfad "DisplayVersion" vorhanden ist
    4. Auslesen von "DisplayVersion"

    Ich hoffe das ihr mir helfen könnt und danke schonmal im Vorraus!

    Viele Grüße,
    xKoGa

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™