Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Windows XP 64-Bit und Registry (https://www.delphipraxis.net/89953-windows-xp-64-bit-und-registry.html)

Flare 9. Apr 2007 11:55


Windows XP 64-Bit und Registry
 
Hey ho!


Ich habe folgenden Code:
Delphi-Quellcode:
var Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CLASSES_ROOT;

  Reg.OpenKey('Mp3File\shell\'+'utilites-tff', true);
  Reg.WriteString('', Caption);
  Reg.OpenKey('command', true);
  Reg.WriteString('', '"'+Application.ExeName+'" "%1"');

  Reg.OpenKey('Mp3File\shell\', false);
  if not Reg.DeleteKey('utilities-tff') then;
    ShowMessage('Fehler');
 
  Reg.CloseKey;
  Reg.Destroy;
end;
Den Schlüssel kann ich erfolgreich anlegen (habe also die Rechte dazu, bin auch eigentlich als Admin angemeldet), jedoch kann ich den Schlüssel nicht wieder löschen, da zeigt er mir (weil DeleteKey false zurückgibt) 'Fehler' an.
Ich habe schon herausgefunden, dass ich nicht direkt in den Classes_Root reinschreibe, sondern (dank XP64-Bit) auf Classes_Root\Wow6432Node weitergeleitet werde. Das klappt auch beim erstellen des Keys, aber beim Löschen vom Key scheint das nicht mehr zu funzen (meine Vermutung).

Hat jemand eine Lösung für das Problem?

Danke schon mal für jede Antwort!


Flare

Matze 9. Apr 2007 12:05

Re: Windows XP 64-Bit und Registry
 
Hi,

du schreibst mal utilities und mal utilites.


Edit: Nutze aber unbedingt Resourcenschutzblöcke, Destroy ist auch nicht empfehlenswert:

Delphi-Quellcode:
var Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CLASSES_ROOT;

    Reg.OpenKey('Mp3File\shell\utilites-tff', true);
    Reg.WriteString('', Caption);
    Reg.OpenKey('command', true);
    Reg.WriteString('', '"' + Application.ExeName + '" "%1"');

    Reg.OpenKey('Mp3File\shell\', false);
    if not Reg.DeleteKey('utilites-tff') then; // oder 'utilities' was du eben möchtest ;-)
      ShowMessage('Fehler');
 
    Reg.CloseKey;
  finally
    FreeAndNil(Reg);
  end;
end;

Flare 9. Apr 2007 12:34

Re: Windows XP 64-Bit und Registry
 
Okay :wall: Danke!

So weit hatte ich nicht mehr gedacht...

Und das mit den Ressourcenschutzblöcken werde ich auch noch einbauen. Danke!


Flare


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 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