Überprüft, ob der Schlüssel "v4" vorhanden ist:
For $i = 1 To 10
Local $var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP", $i)
If @error <> 0 Then ExitLoop
if StringInStr($var,"v4") then
MsgBox(4096, "SubKey #" & $i & " under NET Framework Setup\NDP: ", $var)
Endif
Next
Vorhandene Schlüssel- und WerteNamen:
Dim $KeyNames = "KeyNames:" & @CRLF & @CRLF
Dim $KeyName = "HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Setup\Reader"
Dim $ValueNames = "Valuenames:" & @CRLF & @CRLF
Dim $ValueName = ""
Schlüssel-Namen:
For $i = 1 To 99
Local $var = RegEnumKey($KeyName, $i)
If @error <> 0 Then ExitLoop
$KeyNames = $KeyNames & $i & ".) " & $var & @CRLF
Next
MsgBox(65,"INFO","KeyNames under: " & $KeyName & @CRLF & @CRLF & $KeyNames)
Werte-Namen:
if RegRead($KeyName, "") >= "" AND @error < 0 then ; (es gibt den "(STANDARD)"-Wert)
For $i = 1 To 100
Local $var = RegEnumVal($KeyName, $i)
If @error <> 0 Then ExitLoop
$ValueNames = $ValueNames & $i & ".) " & $var & " : " & RegRead($KeyName,$var) & @CRLF
Next
MsgBox(65,"INFO","ValueNames under: " & $KeyName & @CRLF & @CRLF & $ValueNames)
Else
MsgBox(65,"INFO","Kein STANDARD Wert unter: " & $KeyName)
EndIf
——————————————————————-
if RegRead($KeyName, "") >= "" AND @error > 0 then ; (es gibt den "(STANDARD)"-Wert NICHT)
Auslesen von allen Registrywerten unterhalb eines Schlüssels:
Global $RegPath = "HKEY_LOCAL_MACHINE\SYSTEM\FLG-Landesk\" ; Registry-Pfad
$IniFile = @ComputerName & "_" & @YEAR & @MON & @MDAY & "-" & @HOUR & @MIN & ".ini"
#Region ; ***** Read Registry Info and write to INI-File
For $i = 1 To 50 ; zweiter Wert größer als erwartete Anzahl
Local $var = RegEnumKey($RegPath, $i) ; $var ist Unterschlüssel unter $RegPath
If @error <> 0 Then ExitLoop
IniWrite($IniFile,$var,"Productname",RegRead($RegPath & $var,"Productname"))
IniWrite($IniFile,$var,"IsInstalled",RegRead($RegPath & $var,"IsInstalled"))
IniWrite($IniFile,$var,"Productversion",RegRead($RegPath & $var,"Productversion"))
IniWrite($IniFile,$var,"Revision",RegRead($RegPath & $var,"Revision"))
IniWrite($IniFile,$var,"ProgramFile",RegRead($RegPath & $var,"ProgramFile"))
IniWrite($IniFile,$var,"InstallPath",RegRead($RegPath & $var,"InstallPath"))
IniWrite($IniFile,$var,"Installdate",RegRead($RegPath & $var,"Installdate"))
IniWrite($IniFile,$var,"Installtime",RegRead($RegPath & $var,"Installtime"))
IniWrite($IniFile,$var,"UNInstalldate",RegRead($RegPath & $var,"UNInstalldate"))
IniWrite($IniFile,$var,"UNInstalltime",RegRead($RegPath & $var,"UNInstalltime"))
IniWrite($IniFile,$var,"InstallState",RegRead($RegPath & $var,"InstallState"))
Next
(Standard) Wert setzen und auslesen:
#RequireAdmin ; wichtig, da Berechtigung benötigt wird!
RegWrite("HKEY_CLASSES_ROOT\AutoIt3Script\Shell","","Reg_SZ","Edit") ; "" so wird der (Standard) angesprochen (oder "ÿ" = ALT+152)
$wert = RegRead("HKEY_CLASSES_ROOT\AutoIt3Script\Shell","")
MsgBox(64,"Reg","Standard enthältt: " & $wert) ; der ausgelesene Wert wird angezeigt
Überprüfen, ob ein Schlüssel vorhanden ist: (funktioniert so nicht!)
Local $Fehler
$PendingFileRenameOperations = RegEnumKey("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager", "PendingFileRenameOperations")
$Fehler = @error
Switch $Fehler
Case -1
$FehlerText = "unable to retrieve requested subkey (key instance out of range)"
Case 1
$FehlerText = "unable to open requested key"
Case 2
$FehlerText = "unable to open requested main key"
Case 3
$FehlerText = "unable to remote connect to the registry"
EndSwitch
MsgBox(0,"RegEnumKey", "$PendingFileRenameOperations ist: " & $PendingFileRenameOperations _
& @CRLF & "@Error ist: " & $Fehler _
& @CRLF & @TAB & $FehlerText _
)
Registry Type
Empirum
|
Autoit
|
0x00000000
|
REG_SZ
|
0x00000001
|
REG_BINARY
|
0x00010000
|
REG_MULTI_SZ
|
0x00020000
|
REG_EXPAND_SZ
|
0x00010001
|
REG_DWORD
|
0x00020001
|
REG_NONE
|