Die SendMessage-Methode funktioniert zwar bei mir unter Win7, allerdings finde ich das Setzen des zuletzt benutzten Keys sauberer.
Delphi-Quellcode:
uses
Registry, ShellAPI;
procedure OpenRegistryKey(const AKey: string);
begin
with TRegistry.Create do
begin
try
RootKey := HKEY_CURRENT_USER;
OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Applets\Regedit', false);
// zuletzt geöffneten Key setzen, damit beim nächsten Öffnen der regedit.exe direkt dorthin gesprungen wird
WriteString('LastKey', 'Computer\' + AKey);
CloseKey;
finally
Free;
end;
end;
// regedit.exe öffnen
ShellExecute(0, 'open', 'regedit.exe', nil, nil, SW_SHOWNORMAL);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Beispielaufruf
OpenRegistryKey('HKEY_CURRENT_USER\Environment');
end;