Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2016, 13:10   #1
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию Работа с реестром

день добрый, странные вещи творятся...
Хочу сохранить настройки службы в реестре.
(Ранее держал настройки в ини, но возникали ошибки доступа к файлу при обновлении службы через апдейтер.)


перешел на реестр, и тут началось вообще удивительное...

Данные в непонятной мне последовательности пишутся\читаются из разных адресов реестра

HKEY_CURRENT_USER\SOFTWARE\имя программы

или

HKEY_USERS\.DEFAULT\Software\имя программы


Что за проделки деманов...

Код элементарный
Код:
Procedure SaveNewHash(hash:String);
var
reg:Treginifile;
begin
reg:=Treginifile.Create;
reg.OpenKey('Software',true);
reg.WriteString('hash','value',hash);
reg.Free;
end;
пытался через руткей ткнуть носом прогу в нужный раздел... Результата нет... Пишет куда хочет...

Последний раз редактировалось aesoem; 06.11.2016 в 13:12.
aesoem вне форума Ответить с цитированием
Старый 06.11.2016, 13:44   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Может так
Код:
reg.OpenKey('\Software\название_вашей_программы',true);
_Dmitry вне форума Ответить с цитированием
Старый 07.11.2016, 09:39   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Как вариант используйте TRegistry и явно указываейте раздел ресстра, например: RootKey := HKEY_LOCAL_MACHINE;
FaTaL вне форума Ответить с цитированием
Старый 07.11.2016, 21:58   #4
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Код:
Procedure SaveNewHash(hash:String);
var
    reg:TRegistry;
begin
try
    reg:=TRegistry.Create;
    reg.rootKey:= HKEY_LOCAL_MACHINE;
    reg.OpenKey('Software\MyProgram',true);
    reg.WriteString('hash', hash);
    reg.CloseKey;
finally
    reg.Free;
end;
end;

Последний раз редактировалось Replicant; 07.11.2016 в 22:04.
Replicant вне форума Ответить с цитированием
Старый 10.11.2016, 10:01   #5
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию

проблема была в том, что после сборки ехе срабатывало onCreate и читались\писались данные в HKEY_CURRENT_USER

После запуска службы, она уже работает от системы. и следовательно пишет в HKEY_USERS
aesoem вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с реестром world12_tk Помощь студентам 0 04.10.2011 23:39
Работа с реестром? angelada Помощь студентам 4 19.01.2011 12:12
Работа с реестром Aleksey1989 Общие вопросы Delphi 10 14.11.2010 13:09
работа с реестром alex0097 Общие вопросы Delphi 1 13.07.2010 10:20
Работа с реестром Pr1meEX Общие вопросы Delphi 0 17.06.2009 00:01