Войти

Показать полную графическую версию : Программа записи значения в реестр на Delphi


Animal
21-08-2003, 17:05
ОС W2000Pro.
Написал простенькое консольное приложение на Delphi, которое меняет значение параметра в реестре. Проблема: запись происходит только если есть права администратора. Под опытным пользователем не пишет, хотя ПРАВ 100% ХВАТАЕТ, проверял - regedit'ом значение можно изменить. В чем причина?
program Project1;
{$APPTYPE CONSOLE}
uses Windows, Registry;
var
Reg:TRegistry;
{$R *.RES}
begin
 Reg := TRegistry.Create;
 try
   Reg.RootKey := HKEY_LOCAL_MACHINE;
   if Reg.OpenKey('\Software\IDAVLab\DrWebUpdate\Settings', True) then
  begin
     Reg.WriteString('UpdateURL','V:\UPGRADE\ANTIVIR\DRWEBUPD');
     Reg.CloseKey;
   end;
 finally
end;  
end.

vasketsov
22-08-2003, 07:55
Animal
Reg.CloseKey; убери, а после finally вставь Reg.Free;
хотя, это проблемы не решит. Да и перед Software слэш не надо.

По проблеме - надо смотреть GetLastError что вернет.

Animal
22-08-2003, 08:34
vasketsov
Спасибо за ответ.
Чем слэш перед Software мешает? С ним точно все нормально.
Reg.Free - поставлю конечно.
Хотя и так работает...

На самом деле хрень с доступом решилась так:
После Reg.RootKey := HKEY_LOCAL_MACHINE;
нужно Reg.Access:=KEY_WRITE;
Все.
Надо будет про обновление реестра на клиентах W2000Pro/XP в домене в NT тему поднять




© OSzone.net 2001-2012