Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Неработает код для изменений в реестре


Автор: mjpg 23.7.2007, 10:28
Здравствуйте! Не работает вот этот код! 
Код

procedure TForm1.Button9Click(Sender: TObject);
var
  Reg : TRegistry;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System',False);
  if Reg.ReadInteger('NoDispAppearancePage')=0 then Reg.WriteInteger('NoDispAppearancePage',1);
  Reg.CloseKey;
  Reg.Free;
end;

При проверке синтаксиса и при компиляции ошибок не выдаёт, а при работе выдаёт ошибку и начинается откладка.
Помогите! Почему не работает код? smile 

Автор: Rennigth 23.7.2007, 10:30
Цитата(mjpg @  23.7.2007,  10:28 Найти цитируемый пост)
 а при работе выдаёт ошибку

Какую?

Автор: Alexeis 23.7.2007, 10:40
  Мож нет прав на запись в реестр?

Автор: SlaUr 23.7.2007, 12:08
Цитата

Мож нет прав на запись в реестр

IMHO в HKEY_CURRENT_USER права всегда есть
Код

Reg.ReadInteger('NoDispAppearancePage')


Видимо нет ветки NoDispAppearancePage 
Вообще-то я делаю так

Код

if R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System',false) then
 begin
  if r.ValueExists('NoDispAppearancePage') then 
   if Reg.ReadInteger('NoDispAppearancePage')=0 then  .... 
end.


или так 
Код

R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System',TRUE) ;
  if r.ValueExists('NoDispAppearancePage') then 
   if Reg.ReadInteger('NoDispAppearancePage')=0 then  .... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)