Einzelnen Beitrag anzeigen

SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#1

PlacesBar in Datei-Öffnen-Dialog von Windows

  Alt 4. Apr 2006, 12:32
Ich möchte für mein Programm eine individuelle PlacesBar zu erzeugen. Dazu habe ich gelesen, dass man die Zugriffe auf den Registry-Eintrag, auf dem die PlacesBar-Einträge für den normalen Datei-Öffnen/Speichern Dialog von Windows stehen ('HKEY_CURRENT_USER\Software\Microsoft\Windows\Cur rentVersion\Policies\comdlg32\PlacesBar') auf einen anderen Eintrag mit der Funktion RegOverridePredefKey umlenken kann.

Die API-Funktion RegOverridePredefKey habe ich eingebunden wie von Phoenix beschrieben (Delphi-Praxis-Forum:TRegistry-Aktuellen Pfad speichern)

Da man dieser Funktion einen HKey übergeben muss, habe ich versucht diesen mit Reg.CurrentKey zu bestimmen und folgenden Quelltext geschrieben:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Reg : TRegistry;
  StdPlacesStr : String;
  NewPlacesStr : String;
  StdPlacesKey : HKey;
  NewPlacesKey : HKey;

begin
  StdPlacesStr:=
    '\Software\Microsoft\Windows\CurrentVersion\Policies\comdlg32\PlacesBar';
  NewPlacesStr:='\Software\MyComp\MyProg\PlacesBar';

  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  Reg.OpenKey(StdPlacesStr,True);
  StdPlacesKey:=Reg.CurrentKey;
  Reg.CloseKey;
  Reg.OpenKey(NewPlacesStr,True);
  NewPlacesKey:=Reg.CurrentKey;
  Reg.WriteString('Place0',ExtractFilePath(Application.ExeName));
  RegOverridePredefKey(StdPlacesKey, NewPlacesKey);
  Reg.Free;
end;
Das ganz scheint aber nicht zu funktionieren. Im Debugger zeigt der Aufruf von CurrentKey an zwei unterschiedlichen Stellen der Registry den gleichen Wert an.

Kann mir jemand helfen (oder kommt jede Hilfe zu spät?)

Danke
Steffen
  Mit Zitat antworten Zitat