Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi PlacesBar in Datei-Öffnen-Dialog von Windows (https://www.delphipraxis.net/66791-placesbar-datei-oeffnen-dialog-von-windows.html)

SteffenSchm 4. Apr 2006 12:32


PlacesBar in Datei-Öffnen-Dialog von Windows
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz