autoit Syntax Registry

Ü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