У меня есть один проект Delphi XE2 для работы с ключом реестра. Таким образом, я определил следующие коды:Как читать значение по умолчанию для ключа реестра
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;
Мое требование, чтобы проверить значение по умолчанию «MyName» и показать в Memo01. Но ничего не происходит. Поэтому я пробовал еще один способ:
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;
Но он также не работает.
Вопрос: Вы пробовали RegQueryValueEx ('')? Пустая строка ('' '') должна быть все, что вам нужно. Вопрос: Вы уверены, что данный конкретный ключ * имеет значение по умолчанию? Вы можете видеть это в RegEdit? – paulsm4
Нет нет. Я не пробовал RegQueryValueEx. Да, все имеет значение ** Значение по умолчанию **. –
Но, @Rubi, я сказал вам это [вчера] (http://stackoverflow.com/questions/16144046/how-to-set-value-of-registry-key#comment23064639_16144046). Дважды. –