Главная страница
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.031 c
8-41759
pasha676
2003-07-08 15:57
2003.11.13
Front с прозрачным фоном на Canvas-e


3-41002
OlkaGTS
2003-10-16 12:13
2003.11.13
Один DataSetProvicer - много ClientDataSet


1-41387
difkukan
2003-10-30 11:56
2003.11.13
Вопрос по Treeview


11-41124
Maxim Pushkar
2003-02-13 01:00
2003.11.13
Проблемы с конвертацией дат и NewFileStream


1-41506
Тимохов
2003-10-28 14:37
2003.11.13
Попрос по clipboard