Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Перенос данных в реестре   Найти похожие ветки 

 
Speaker ©   (2003-08-29 10:29) [0]

Суть вопроса.
По молодости, при написании проги, настройки сохранял не в том
ключе рееста (HKLM вместо HKCU). Сейчас сам софт переделал,
чтобы читал он настройки оттуда, откуда нужно, встала проблема,
как их быстро перенести из одного ключа в другой.
Ходить по всем раб. станциям и вручную делать экспорт/импорт
не хочется. Написал мелкий софт, который по моему мнению должен
помочь, но он не работает:

var rs, rl : TRegistry;
begin
rs := TRegistry.Create;
rl := TRegistry.Create;

try
rs.RootKey := HKEY_CURRENT_USER;
rl.RootKey := HKEY_LOCAL_MACHINE;
if rl.SaveKey( sRegString, "c:\12345678" ) then
begin
if rs.LoadKey( sRegString, "c:\12345678" ) then ShowMessage( "Исходный ключ реестра успешно скопирован." )
else ShowMessage( "Ошибка при переносе ключа реестра." );
end
else ShowMessage( "Ошибка при записи в файл." );
finally
rs.Free;
rl.Free;
end;
end;


на моем компе (W2K) говорит ошибку записи в файл (файл создается), но длина 0.
на раб. станциях (W98) файл создается, непустой, но говорит, что ошибка при переносе...
Я конечно, могу копировать не через файл, но тогда нужно это делать для
каждого параметра, а их до хрена да еще и переменное количество...

Может, кто подскажет чего?

P.S. Метод MoveKey не помогает, не хочет работать с разными ключами, по крайней мере мне не удалось его заставить.
Если корневой ключ одинаковый, то работает прекрасно.


 
HolACost! ©   (2003-08-29 10:37) [1]

Если я правильно понял. то вам надо просто посмотреть файл исходников Registry и там есть такая класса, как TRegistryFile - вот попробуй с ней поплясать. может поможет!


 
Speaker ©   (2003-08-29 10:49) [2]

2 HolACost!
Так а смысел? Я уже смотрел, они все производные от TRegistry.
А TRegistry пользует WinAPI RegLoadKey, RegSaveKey, с помощью
них я тоже пробовал, не получается. Проблема в том, что если
корневые ключи одинаковые, то все ок, а если разные то он похоже,
читает корень из файла, в котором записан предыдущий корень, и
пытается записать его в тот же ключ - в рез-те выдает ошибку...


 
clickmaker ©   (2003-08-29 15:08) [3]

В НТ/2000 должна быть активизирована привилегия SE_BACKUP_NAME (см. AdjustTokenPrivileges).



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.037 c
1-41474
MoGiLsHiKK
2003-10-24 15:03
2003.11.13
messagedlg +timer+random


1-41231
Pomashok
2003-11-01 11:18
2003.11.13
Hint


3-41016
pwl
2003-10-15 21:26
2003.11.13
Как сохранить часть базы?????????


1-41227
AndriyS
2003-11-01 14:15
2003.11.13
Помогите с StringGrid


14-42058
ananimious
2003-10-15 21:03
2003.11.13
Как защититься от спама?