Löscht einen Schlüssel oder einen Wert aus der Registry.
RegDelete ( "keyname" [, "valuename"] )
keyname | Der zu löschende Registry-Schlüssel. |
valuename | [optional] Der zu löschende Wert. |
Erfolg: | 1. |
Spezial: | 0 wenn der Schlüssel/Wert nicht existiert. |
Fehler: | 2 wenn das Löschen des Schlüssels/Wertes einen Fehler verursacht hat und setzt das @error Flag auf ungleich null. |
@error: | 1 = der angegebene Schlüssel kann nicht geöffnet werden 2 = es ist nicht möglich auf den Hauptschlüssel zuzugreifen 3 = es kann von extern (remote) nicht auf die Registry zugegriffen werden -1 = wenn der gewünschte Wert nicht gelöscht werden konnte -2 = wenn der gewünschte Schlüssel bzw. Wert nicht gelöscht werden konnte |
Ein Registry-Schlüssel muss mit "HKEY_LOCAL_MACHINE" ("HKLM"), "HKEY_USERS" ("HKU"), "HKEY_CURRENT_USER" ("HKCU"), "HKEY_CLASSES_ROOT" ("HKCR") oder "HKEY_CURRENT_CONFIG" ("HKCC") beginnen.
"HK" oder "HKEY" bedeutet "Handle (to a) KEY".
Um einen Schlüssel oder Wert auf einem 64-Bit Windows zu löschen, muss dem Begriff "HK..." das Suffix "64" angehängt werden (z. B. "HKLM64").
Registry-Zweige:
64 Bit: HKLM\SOFTWARE\…
32 Bit: HKLM\SOFTWARE\WOW6432Node\…
AutoIt-Skript: Ausführungs-Modus | AutoIt-Skript: Angabe im Quellcode | Registrierungs-Editor: Verwendeter Zweig |
---|---|---|
32 Bit | HKLM\SOFTWARE\… | HKLM\SOFTWARE\WOW6432Node\… |
32 Bit | HKLM64\SOFTWARE\… | HKLM\SOFTWARE\… |
32 Bit | HKLM\SOFTWARE\WOW6432Node\… | HKLM\SOFTWARE\WOW6432Node\… |
64 Bit | HKLM\SOFTWARE\… | HKLM\SOFTWARE\… |
64 Bit | HKLM64\SOFTWARE\… | HKLM\SOFTWARE\… |
64 Bit | HKLM\SOFTWARE\WOW6432Node\… | HKLM\SOFTWARE\WOW6432Node\… |
RegEnumKey, RegEnumVal, RegRead, RegWrite
#include <MsgBoxConstants.au3>
Example()
Func Example()
; Prüft, ob der Registryschlüssel bereits existiert, damit das System es Benutzers nicht beschädigt wird.
RegRead("HKEY_CURRENT_USER\Software\AutoIt_Example", "Key1")
; @error wird auf ungleich 0 gesetzt, wenn ein Registryschlüssel gelesen wird der nicht existiert.
If Not @error Then
MsgBox($MB_SYSTEMMODAL, "", "Ein Fehler ist aufgetreten, dass der temporäre Registryschlüssel ""AutoIt_Example"" bereits existiert.")
Return False
EndIf
; Schreibt einen einzelnen REG_SZ Wert in den Schlüssel "Key1".
RegWrite("HKEY_CURRENT_USER\Software\AutoIt_Example", "Key1", "REG_SZ", "Dies ist ein Beispiel von RegWrite")
; Schreibt den REG_MULTI_SZ Wert von "Zeile 1" und "Zeile 2". Es iwrd immer ein Zeilenvoschubzeichen angehängt wenn ein REG_MULTI_SZ Wert geschrieben wird.
RegWrite("HKEY_CURRENT_USER\Software\AutoIt_Example", "Key2", "REG_MULTI_SZ", "Zeile 1" & @LF & "Zeile 2" & @LF)
; Schreibt den REG_MULTI_SZ Wert von "Zeile 1". Es iwrd immer ein Zeilenvoschubzeichen angehängt wenn ein REG_MULTI_SZ Wert geschrieben wird.
RegWrite("HKEY_CURRENT_USER\Software\AutoIt_Example", "Key3", "REG_MULTI_SZ", "Zeile 1" & @LF)
; Zeigt eine Nachricht um manuell zu dem Registryschlüssel zu navigieren.
MsgBox($MB_SYSTEMMODAL, "", "Es ist RegEdit.exe zu öffnen und zu dem Registryschlüssel ""HKEY_CURRENT_USER\Software\AutoIt_Example"" zu navigieren.")
; Löscht den temporären Registryschlüssel.
RegDelete("HKEY_CURRENT_USER\Software\AutoIt_Example")
EndFunc ;==>Example
#include <MsgboxConstants.au3>
;~ #RequireAdmin
; erfordert Admin-Rechte
Local $sKey = "HKEY_LOCAL_MACHINE64\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders"
Local $iRegWrite = RegWrite($sKey, "test", "REG_DWORD", "1")
If $iRegWrite = 0 Then
MsgBox($MB_ICONWARNING + $MB_TOPMOST, "erfordert Admin-Rechte", "Kann nicht erstellt werden" & @CRLF & @CRLF & $sKey & @CRLF & @CRLF & 'Return = ' & $iRegWrite & @CRLF & '@error = ' & @error & @TAB & '@extended = ' & @extended & ' (0x' & Hex(@extended) & ')') ;### Debug MSGBOX
Else
MsgBox($MB_TOPMOST, "RegWrite", $sKey & @CRLF & @CRLF & "erfolgreich erstellt")
; Registry bereinigen
RegDelete($sKey, "test")
EndIf
; Erfordert keine Admin-Rechte
$sKey = "HKEY_CURRENT_USER\Software\Test"
$iRegWrite = RegWrite("HKEY_CURRENT_USER\Software\Test", "test", "REG_DWORD", "1")
If $iRegWrite = 0 Then
; Sollte nicht vorkommen
MsgBox($MB_ICONERROR + $MB_TOPMOST, "AutoIt Fehler", "Kann nicht erstellt werden" & @CRLF & @CRLF & $sKey & @CRLF & @CRLF & 'Return = ' & $iRegWrite & @CRLF & '@error = ' & @error & @TAB & '@extended = ' & @extended & ' (0x' & Hex(@extended) & ')')
Else
If IsAdmin() Then
MsgBox($MB_TOPMOST, "RegWrite", $sKey & " erfolgreich erstellt")
Else
ConsoleWrite("- " & $sKey & " erfolgreich erstellt" & @CRLF)
EndIf
; Registry bereinigen
RegDelete($sKey, "test")
RegDelete($sKey)
EndIf