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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2011, 01:32   #1
DENIS_1992
Пользователь
 
Регистрация: 29.05.2011
Сообщений: 24
Восклицание Импорт настроек реестра

Привет всем. Мне необходимо импортировать и экспортировать настройки реестра.
Код импорта настроек:
Код:
procedure TForm1.Button1Click(Sender: TObject);
     var
         hToken: THandle;
         tkp: Token_Privileges;
         ReturnLength: Cardinal;
         hKeyToSave: HKEY;
         dw: cardinal;
      begin
       if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken) then
        begin
         LookupPrivilegeValue(nil,'SeBackupPrivilege', tkp.Privileges[0].Luid);
         tkp.PrivilegeCount:=1;

         tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
         AdjustTokenPrivileges(hToken, false, tkp, sizeof(TOKEN_PRIVILEGES), nil, ReturnLength);
        end;

       RegCreateKeyEx(HKEY_LOCAL_MACHINE,
                          'HARDWARE\ACPI',//ключ, который бэкапим
                          0,
                          nil,
                          REG_OPTION_BACKUP_RESTORE,
                          KEY_QUERY_VALUE,
                          nil,
                          hKeyToSave,
                          @dw);

       RegSaveKey(hKeyToSave,'Den.txt', nil);
       RegCloseKey(hKeyToSave);
      end;
При помощи этой процедуры создается текстовый файл Den.txt размером 20мб
Пол дела сделано, а вот код занесения настроек обратно в реестр:
Код:
procedure TForm1.Button2Click(Sender: TObject);
      var
         hToken: THandle;
         tkp: Token_Privileges;
         ReturnLength: Cardinal;
         hKeyToSave: HKEY;
         dw: cardinal;
      begin
       if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken) then
        begin
         LookupPrivilegeValue(nil,'SeRestorePrivilege', tkp.Privileges[0].Luid);
         tkp.PrivilegeCount:=1;

         tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
         AdjustTokenPrivileges(hToken, false, tkp, sizeof(TOKEN_PRIVILEGES), nil, ReturnLength);
         end;

       RegCreateKeyEx(HKEY_LOCAL_MACHINE,
                          'HARDWARE\ACPI',//ключ, который бэкапим
                          0,
                          nil,
                          REG_OPTION_BACKUP_RESTORE,
                          KEY_QUERY_VALUE,
                          nil,
                          hKeyToSave,
                          @dw);

       RegLoadKey(hKeyToSave,'DEN.txt', nil);
       RegCloseKey(hKeyToSave);
      end;
В результате выполнения в реестр заноситься только имя одного подкатолога и всё. Что я делаю неправильно???

Последний раз редактировалось DENIS_1992; 09.06.2011 в 01:34.
DENIS_1992 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение настроек ИЕ designer999 Работа с сетью в Delphi 0 05.08.2010 00:27
импорт-Экспорт из реестра программно. VIR1435 Общие вопросы Delphi 5 29.09.2009 23:16
Сохранение настроек blackstersl Общие вопросы Delphi 3 21.12.2008 12:37
экспорт/импорт реестра TaTT DoGG Общие вопросы Delphi 4 05.11.2008 14:51