Comment lire la Valeur par Défaut de la Clé de Registre

Je vais avoir un Delphi XE2 projet de travailler sur quelque chose avec une clé de registre. J'ai donc défini les codes suivants :

procedure TMainForm.BitBtn01Click(Sender: TObject);
var
  RegistryEntry: TRegistry;
begin
  RegistryEntry := TRegistry.Create(KEY_READ or KEY_WOW64_64KEY);
  RegistryEntry.RootKey:= HKEY_LOCAL_MACHINE;
  if (not RegistryEntry.KeyExists('Software\MyCompanyName\MyName\')) then
    begin
      RegistryEntry.Access:= KEY_WRITE or KEY_WOW64_64KEY;
      RegistryEntry.OpenKey('Software\MyCompanyName\MyName\',True);
      RegistryEntry.WriteString('', 'MyFirstProject');
    end
  else
    begin
      Memo01.Lines.Add(RegistryEntry.ReadString('(Default)')); //Not Working
      Memo01.Lines.Add(RegistryEntry.ReadString('')); //Not Working
      Memo01.Lines.Add(RegistryEntry.ReadString('@')); //Not Working
    end;
  RegistryEntry.CloseKey();
  RegistryEntry.Free;
end;

Mon obligation est de vérifier la Valeur par Défaut de "MyName", et de montrer en Memo01. Mais rien n'est heppening. J'ai donc essayé une autre manière comme suit :

procedure TMainForm.BitBtn01Click(Sender: TObject);
var
  RegistryEntry: TRegistry;
  RegistryString: string;
begin
  RegistryEntry := TRegistry.Create(KEY_READ or KEY_WOW64_64KEY);
  RegistryEntry.RootKey:= HKEY_LOCAL_MACHINE;
  if (not RegistryEntry.KeyExists('Software\MyCompanyName\MyName\')) then
    begin
      RegistryEntry.Access:= KEY_WRITE or KEY_WOW64_64KEY;
      RegistryEntry.OpenKey('Software\MyCompanyName\MyName\',True);
      RegistryEntry.WriteString('', 'MyFirstProject');
    end
  else
    begin
      RegistryString := RegistryEntry.ReadString('(Default)'); //Not Working
      RegistryString := RegistryEntry.ReadString(''); //Not Working
      RegistryString := RegistryEntry.ReadString('@'); //Not Working
      Memo01.Lines.Add(RegistryString);
    end;
  RegistryEntry.CloseKey();
  RegistryEntry.Free;
end;

Mais il n'est pas de travail.

Q: Avez-vous essayé de RegQueryValueEx(")? Une chaîne vide ('') devrait être tout ce dont vous avez besoin. Q: Êtes-vous sûr que cette touche est une valeur par défaut? Pouvez-vous le voir dans RegEdit?
Pas de pas de. Je n'ai pas essayé RegQueryValueEx. Oui tout est concernant Valeur par Défaut.
Mais, @Rubi, je vous ai dit ce yesterday. À deux reprises.
Ce genre de programme avez-vous que ressent le besoin de revendiquer des droits élevés à chaque fois qu'il s'exécute, juste de sorte qu'il peut écrire HKLM la première fois qu'il fonctionne?

OriginalL'auteur Rubi Halder | 2013-04-23