Hintergrund: Es hat mich genervt, dass man bei jeder Neuinstallation immer wieder alles neu von hand einstellen muß. (Ich meinE, wozu habe ich denn einen Computer?) Ich habe mich dann etwas damit auseinandergesetzt und von Hand die Schlüssel aus der Regeistry exportiert. Nun wollte ich das automatisieren. Mit Batch-Dateien habe ich es schon hinbekommen, aber die sind sehr unflexible. Ich bin dann auf die
API RegSaveKey gestossen.
So mit untenstehenden Code versuche ich nun einen Schlüssel aus der Registry zu exportieren und zu speichern. Das funktioniert so halb. Also die Datei wird erstellt, nur leider bleibt sie leer. Und genau an dieser Stelle bräuchte ich eure Hilfe.
Code:
[b]procedure[/b] ExportRegKey(Path: [b]String[/b]; ID: byte; Root: HKEY);
[b]var[/b]
hRegKey, dummy: HKEY;
i: Byte;
s: [b]String[/b];
[b]begin[/b]
s := GetSubKey(LoadStr(ID));
dummy := RegOpenKeyEx(HKEY_CURRENT_USER, @s[1], 0, KEY_READ, hRegKey);
RegSaveKey(hRegKey, @Path[1], 0);
RegCloseKey(hRegKey);
[b]end[/b];
Zur Erklärung:
LooadStr(ID) liefert folgenden String:
"HKEY_CURRENT_USER\\Software\\Microsoft\\Inter net Explorer" (Die doppleten "\\" sind in Ordnung, der String kommt aus einem Stringtable mit dem VC erstellt. Die gleichen Strings werden als Tooltips angezeigt und da verschwienden die doppelten "\\".)
GetSubKey(...) liefert für obiges Beispiel "Software\\Microsoft\\Internet Explorer"
Path ist der Pfad und der Dateiname.