Главная страница
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.047 c
3-41076
BigVova
2003-10-23 15:02
2003.11.13
Поддерживают ли IBX изменения в FB 1.5?


14-41906
jab~
2003-10-21 14:29
2003.11.13
Поиск в TStringList, но не просто find, а с частичным совпадением


6-41797
Lord Of The Dark Wind
2003-09-14 09:49
2003.11.13
TClientSocket & TServerSocket


1-41518
tolstiak
2003-10-27 16:17
2003.11.13
Чем в данном случае лучше воспользоваться


4-42254
Prov
2003-09-15 09:25
2003.11.13
Hint