Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.032 c
1-41558
KoSt1
2003-10-27 17:43
2003.11.13
И опять они-МАССИВЫ!


1-41308
SergeyVMM
2003-10-31 10:57
2003.11.13
Ресурсы


14-42075
alex134
2003-10-23 18:05
2003.11.13
спам


4-42300
Andriy Tysh
2003-09-17 17:48
2003.11.13
Resize колонок в DBGrid е


6-41803
nefrit
2003-09-15 22:26
2003.11.13
Netbios





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский