Die Windows-Registry mit reg-Dateien bearbeiten
18.05.2005
17:24:17 Uhr57762 Aufrufe
2 Antworten
17:24:17 Uhr
2 Antworten
Noch nicht bewertet
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.
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
oder bei neueren Windows-Versionen (W2K / XP)
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:
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:
Sollen hingegen Schlüssel und Werte gelöscht werden, setzt man einfach ein Minuszeichen davor (Schlüssel) beziehungsweise dahinter (Werte):
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:
So, jetzt brauchen Sie nur noch Ideen, was Sie an der Registry verändern wollen. Vielleicht hilt dies
:
Link: Windows Registry Guide
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
01.
REGEDIT4oder bei neueren Windows-Versionen (W2K / XP)
01.
Windows Registry Editor Version 5.00Dann 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:
01.
[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:
01.
;DWORD-Werte setzen 02.
03.
[HKEY_CURRENT_USER\Software\TEST] 04.
; Beispiel Hexadezimal 4 05.
"TEST1"=dword:000004 06.
07.
; Beispiel Hexadezimal 0 08.
"TEST2"=dword:000000 09.
10.
11.
;Zeichenfolgen-Werte setzen 12.
13.
[HKEY_CURRENT_USER\Software\TEST] 14.
"TEST3"="Wert" 15.
16.
17.
;Binärwert setzen 18.
19.
[HKEY_CURRENT_USER\Software\TEST] 20.
; Beispiel binär für "Wert" 21.
"TEST4"=hex:57,65,72,74 22.
23.
24.
;"Standard"-Wert setzen 25.
26.
[HKEY_CURRENT_USER\Software\TEST] 27.
@="Wert"Sollen hingegen Schlüssel und Werte gelöscht werden, setzt man einfach ein Minuszeichen davor (Schlüssel) beziehungsweise dahinter (Werte):
01.
; Schlüssel löschen 02.
[-HKEY_CURRENT_USER\Software\TEST] 03.
04.
; Zeichenfolgen-Wert löschen 05.
"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:
01.
regedit /s datei.regSo, jetzt brauchen Sie nur noch Ideen, was Sie an der Registry verändern wollen. Vielleicht hilt dies
Link: Windows Registry Guide
Dieser Exkurs bezieht sich im Wesentlichen auf Zeichenfolgen-Werte (REG_SZ)!
Wie wir oben gesehen haben, werden Zeichenfolgenwerte, nach dem Muster
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:
Noch eine Stufe verschärft wäre das Beispiel folgendermaßen:
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:
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:
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:
Wie wir oben gesehen haben, werden Zeichenfolgenwerte, nach dem Muster
01.
"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:
01.
[HKEY_CURRENT_USER\Software\TEST] 02.
"Installationspfad"="C:\programme\meinprogramm"Noch eine Stufe verschärft wäre das Beispiel folgendermaßen:
01.
[HKEY_CURRENT_USER\Software\TEST] 02.
"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:
01.
[HKEY_CURRENT_USER\Software\TEST] 02.
"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:
01.
[HKEY_CURRENT_USER\Software\TEST] 02.
"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:
01.
[HKEY_CURRENT_USER\Software\TEST] 02.
"Installationspfad"="\"C:\\programme\\mein programm\""
evinben schreibt am 20.09.2010 um 15:22:54 Uhr
01.
> [HKEY_CURRENT_USER\Software\TEST] 02.
> "Installationspfad"=<span style="color:#ff0000;font-weight:bold">"</span><span 03.
> style="color:#ff0000;font-weight:bold">"</span>C:\programme\mein programm"" 04.
> 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?









11078schreibt am 23.05.2005 um 14:15:49 Uhr