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
$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")
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)
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