Eksport klucza Rejestrów do pliku *.reg
olesio
Poniżej przedstawiam moduł, który umożliwia zapis wybranego klucza Rejestrów Windows do pliku *.reg typu REGEDIT4.
Po dwurkotnym klinięciu na ikonę takiego pliku możemy dodać jego zawartość do Rejestrów systemu lub go zmodyfikować.
Autorem oryginału, który można znaleźć na http://www.swissdelphicenter.ch/torry/showcode.php?id=1330 lub w zipie
na http://www.delphi32.com/vcl/2450/ jest Arthur Hoornweg. Niestety autor pisał go dawno temu i moduł nie radził sobie
z zapisem kluczy pod XP typu REG_EXPAND_SZ. Poprawiłem to, a także usprawniłem zapis wartości, które w nazwie
znak/i backslasha/y. Dodałem też możliwość wyeksportowania klucza do StringListy zamiast do pliku. W StringListcie
można oczywiście dalej taki plik odpowiednio przygotować dodając choćby kolejne wartości z rejestrów itp. Z oryginalnego
modułu wyciąłem też komentarze przy kodzie. Uważam że kod jest na tyle prosty, że wydały mi się zbędne. Aby używać
tego modułu wystarczy dodać go do sekcji uses i użyć jedną z dwóch procedur (lub jeżeli zajdzie konieczność obie z nich):
Przykład zapisu do pliku *.reg:
begin
ExportRegistryBranch(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'plik.reg');
end;
Przykład zapisu zawartości do StringListy:
var
SL : TStringList;
begin
SL := TStringList.Create;
ExportRegistryBranchToStringList(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', SL);
SL.SaveToFile('stringlista.reg');
SL.Free;
end;
UWAGA.<font color="red"></span>
Pod systemem Windows Vista może zajść konieczność uruchomienia naszego programu jako
Administrator, aby mieć pełne uprawnienia do odczytu danych ze wszystkich kluczy Rejestrów.
Kod modułu spakowany ZIP można pobrać tutaj:regexpo_modifited_and_fixed_by_olesio.zip