Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не считывается инфа из реестра под другим пользователем [D6, dBase, FoxPro]


BD ©   (2007-11-13 21:58:00) 

Имеется программа (Делфи+FoxPro), установленная пользователем "1". При инсталляции этой программы происходит запись некоторого значения в реестр винды.
Если программу запускает пользователь "1", считывание информации из реестра происходит нормально. Но если программу запускает пользователь "2", информация не считывается. Нужго чтобы программа считывала информацию из реестра под любым пользователем.


BD   (2007-11-23 00:41:00) [1]

RE:
egin
    reg:=TRegistry.Create;
    SubKey:='\SOFTWARE\XXX\';
    reg.RootKey:=HKEY_LOCAL_MACHINE;
    if reg.KeyExists(SubKey) then
      begin
         reg.OpenKey(SubKey, false);
         Location_BD:=reg.ReadString('NameBD');
         reg.CloseKey;
         reg.Free;
..........................
end;

Сделали так:
вместо строки reg.OpenKey(SubKey, false)
поставили строку reg.OpenKeyReadOnly(SubKey)
Теперь админ (пользователь "1") устанавливает программу, а обычный пользователь (пользователь "2") читает из реестра.


ЮЮ   (2007-11-15 03:13:00) [2]

> reg:=TRegistry.Create;


> [3] KilkennyCat ©   (14.11.07 22:43)
> и права у пользователей одинаковые...


Для чтения используй другой конструктор:

constructor Create(AAccess:LongWord); overload;


KilkennyCat   (2007-11-14 22:43:00) [3]

и права у пользователей одинаковые...


BD   (2007-11-14 22:11:00) [4]

Я и пишу в HKEY_LOCAL_MACHINE\SOFTWARE\XXX\[переменная].

begin
     reg:=TRegistry.Create;
     SubKey:='\SOFTWARE\XXX\';
     reg.RootKey:=HKEY_LOCAL_MACHINE;
     if reg.KeyExists(SubKey) then
       begin
          reg.OpenKey(SubKey, false);
          Location_BD:=reg.ReadString('NameBD');
          reg.CloseKey;
          reg.Free;
..........................
end;

при считывании из реестра под пользователем "2" информация  не считывается. Пишет:
Location_BD=' '
А под пользователем "1" (который инсталлирован программу) - все нормально


Anatoly Podgoretsky   (2007-11-13 22:07:00) [5]

> BD  (13.11.2007 21:58:00)  [0]

Для этого надо писать в HKLM


Наверх

Титульная страница Поиск, карта сайта Написать письмо