11078
Goto Top

Die Windows-Registry mit reg-Dateien bearbeiten

Wer öfter größere Mengen von Registry-Einträgen auf mehr als einem Computer bearbeiten, erstellen oder löschen muss, benötigt eine zeitsparende und übersichtliche Möglichkeit hierzu.

reg-Dateien bieten mit einfacher Syntax einen dauerhaften "Speicher" für immer wieder notwendige Registry-Hacks.

In "Registry Data Files" (*.reg) lassen sich Teile der Registry sichern, aber auch Einstellungen in die Registry importieren. Anstatt jeden Regsitry-Hack manuell über den Registry-Editor vorzunehmen ist es manchmal sinnvoller, alle Einträge einfach durch regedit.exe aus den "Registry Data Files" importieren zu lassen.


reg-Dateien sind in gewisser Weise die Großväter von ADM-Vorlagen (bzw. Gruppenrichtlinien). In einigen Situationen (z.B. für den "schnellen Registry Patch" zwischendurch) sind sie jedoch immer noch sehr hilfreich.


reg-Dateien liegen als normale Textdateien vor und können deshalb mit jedem Texteditor erstellt werden. Speichern Sie die Inhalte einfach in einer Datei mit der Dateinamenerweiterung .reg ab.

Am Anfang jeder reg-Datei steht zunächst einmal

REGEDIT4

oder bei neueren Windows-Versionen (W2K / XP)
Windows Registry Editor Version 5.00

Dann folgen die eigentlichen Manipulationen an der Registry. ABER VORSICHT: Änderungen an der Registry können schwerwiegende Folgen haben! Sichern Sie Ihre Registry vor dem Herumexperimentieren.

Als nächstes muss angegeben werden, an welchem Zweig/Schlüssel der Registry etwas verändert werden soll. Diese Angaben stehen immer in eckigen Klammern:

[HKEY_CURRENT_USER\Software\TEST]

Die Registry kennt viele verschiedene Arten von Werten, die am häufigsten benutzten:

- DWORD-Werte (REG_DWORD)
- Zeichenfolgen-Werte (REG_SZ)
- Binärwerte (REG_BINARY)
- den so genannten "Standard"-Wert


Folgendes Beispiel zeigt, wie man diese Werte in die Registry ( hier in unseren oben genannten Beispielschlüssel) einträgt:

;DWORD-Werte setzen

[HKEY_CURRENT_USER\Software\TEST]
 ; Beispiel Hexadezimal 4
 "TEST1"=dword:000004  

 ; Beispiel Hexadezimal 0
 "TEST2"=dword:000000  


;Zeichenfolgen-Werte setzen

[HKEY_CURRENT_USER\Software\TEST]
 "TEST3"="Wert"  


;Binärwert setzen

[HKEY_CURRENT_USER\Software\TEST]
 ; Beispiel binär für "Wert"  
 "TEST4"=hex:57,65,72,74  


;"Standard"-Wert setzen  

[HKEY_CURRENT_USER\Software\TEST]
 @="Wert"  


Sollen hingegen Schlüssel und Werte gelöscht werden, setzt man einfach ein Minuszeichen davor (Schlüssel) beziehungsweise dahinter (Werte):

; Schlüssel löschen
[-HKEY_CURRENT_USER\Software\TEST]

; Zeichenfolgen-Wert löschen
 "TEST5"=-  


Per Doppelklick werden die Inhalte der reg-Dateien der Windows-Registry hinzugefügt; dies muss per Dialogfeld zweimal bestätigt werden (1x bestätigen, dass hinzugefügt wird; 1x bestätigen, dass hinzugefügt wurde). Wer es gerne lautlos hätte, führt den Import über die Kommandozeile durch:

regedit /s datei.reg

So, jetzt brauchen Sie nur noch Ideen, was Sie an der Registry verändern wollen. Vielleicht hilt dies face-smile :


Link: Windows Registry Guide

Content-Key: 10853

Url: https://administrator.de/contentid/10853

Printed on: April 18, 2024 at 09:04 o'clock

Mitglied: 11078
11078 May 23, 2005 at 12:15:49 (UTC)
Goto Top
Dieser Exkurs bezieht sich im Wesentlichen auf Zeichenfolgen-Werte (REG_SZ)!


Wie wir oben gesehen haben, werden Zeichenfolgenwerte, nach dem Muster

 "Name_Zeichenfolge"="Wert_Zeichenfolge"  

konstruiert.


Was als Wert_Zeichenfolge zugeordnet werden kann, unterliegt allerdings von der reinen Form her Regeln. Das heißt im Klartext: Gewisse Zeichen dürfen nicht so einfach zwischen die Anführungsstriche. Machen wir uns das an einem Beispiel klar:

  [HKEY_CURRENT_USER\Software\TEST]
  "Installationspfad"="C:\programme\meinprogramm"  

Noch eine Stufe verschärft wäre das Beispiel folgendermaßen:

  [HKEY_CURRENT_USER\Software\TEST]
  "Installationspfad"=""C:\programme\mein programm""  

Pfadangaben als Wertzuweisungen einer Zeichenfolge in der Registry sind keine Seltenheit. Man findet Sie zuhauf im Zweig HKEY_CLASSES_ROOT, wo unter anderem geregelt wird, welches Programm von wo gestartet wird, wenn ein bestimmter Dateityp geöffnet werden soll.

Im zweiten Beispiel haben wir zudem den Fall, dass der angegebene Pfad Leerstellen beinhaltet: Von Windows zwar zugelassen, sollte man solche Pfadangaben vorsichtshalber immer in Anführungsstrichen notieren.

Was ist nun das Problem?

Sehen wir uns das ganze noch einmal farblich aufbereitet an:

  [HKEY_CURRENT_USER\Software\TEST]
  "Installationspfad"=<span style="color:#ff0000;font-weight:bold">"</span><span style="color:#ff0000;font-weight:bold">"</span>C:\programme\mein programm"" 

Anführungsstriche gehören zur Syntax der reg-Dateien. Wenn nun als Teil der Wertzuweisung auch Anführungsstriche notiert werden, wird die ganze Konstruktion zerhauen. Im Beispiel oben sind der einleitende Anführungsstrich der Wertzuweisung rot markiert und ebenso der erste Anführungsstrich, der eigentlich Teil des Wertes selbst ist. Die Zeichenfolge hätte im Endeffekt gar keinen Wert, da zwischen den ersten beiden Anführungsstrichen gar nichts steht!

Im Ernstfall würde die Zeichenfolge nicht gesetzt werden, da die Syntax falsch ist: Nach den Anführungsstrichen, in denen die Wertzuweisung stehen sollte, kommt ein "loser" String und dann noch einmal Anführunsgstriche - das ist natürlich nicht syntaxkonform.

Was kann man tun?

Natürlich müssen Sie nicht auf Anführungsstriche als Teil der Wertzuweisung verzichten, diese aber etwas anders notieren. In den meisten Programmiersprachen/Scriptsprachen kennt man so genannte "Escape-Sequenzen", die einem Zeichen voran gestellt werden, das ansonsten als Steuerzeichen fehlinterpretiert würde. Nicht selten ist diese Escape-Sequenz der Backslash: \.

Unser Beispiel mit den Anführungsstrichen als Teil der Wertzuweisung müsste also folgendermaßen aussehen:

  [HKEY_CURRENT_USER\Software\TEST]
  "Installationspfad"="\"C:\programme\mein programm\""  

Aber HALT! Fällt Ihnen etwas auf? In der Pfadangabe sind ja lauter Backslashes?
Natürlich muss auch der Backslash selbst - sofern er nicht als Escape-Sequenz gemeint ist - "escaped" werden. Unser Ausgangsbeispiel muss syntaktisch vollkommen korrekt deshalb lauten:

  [HKEY_CURRENT_USER\Software\TEST]
  "Installationspfad"="\"C:\\programme\\mein programm\""  
Member: evinben
evinben Sep 20, 2010 at 13:22:54 (UTC)
Goto Top
Zitat von @11078:
Sehen wir uns das ganze noch einmal farblich aufbereitet an:

>   [HKEY_CURRENT_USER\Software\TEST]
>   "Installationspfad"=<span style="color:#ff0000;font-weight:bold">"</span><span 
> style="color:#ff0000;font-weight:bold">"</span>C:\programme\mein programm"" 
> 

Anführungsstriche gehören zur Syntax der reg-Dateien. Wenn nun als Teil der Wertzuweisung auch Anführungsstriche
notiert werden, wird die ganze Konstruktion zerhauen. Im Beispiel oben sind der einleitende Anführungsstrich der
Wertzuweisung rot markiert und ebenso der erste Anführungsstrich, der eigentlich Teil des Wertes selbst ist. Die Zeichenfolge
hätte im Endeffekt gar keinen Wert, da zwischen den ersten beiden Anführungsstrichen gar nichts steht!


Wie meinst du es genau? Es sieht so aus als ob an dem Code etwas mit der Formatierung nicht geklappt hat?