![](/logo_grey.gif)
Последние записи
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
- Lazarus, проверка существования строки таблице
- BASM и record, обращение к полям записи
- Web PHP Framework Symfony
- Относительный путь для вывода картинки на html странице
- Массовое открытие гиперссылок в браузере
- Скопировать значение строки из таблицы в textarea
- Рамки для страниц отчетов
- Вывод StdOut консоли в TMemo
- Чтение из файла большого размера (нехватка памяти)
![](http://programmersclub.ru/slurm3.jpg)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
![](http://programmersclub.ru/katajpg.jpg)
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
3rd
Окт
Скопировать ключи реестра
Posted by micher under Delphi
Есть ключ реестра в секции HKEY_LOCAL_MACHINE\SOFTWARE\, у этого ключа есть несколько подключей, в каждом хранятся параметры разных типов.
Надо копировать этот ключ со всеми его подключами и значениям в секцию HKEY_CURRENT_USER\Software\. Как реализовать?
{Shadowevil}
Procedure TFrmMain.RegCopy(aKey: String);
var
Reg, Reg2: TRegistry;
SL: TStringList;
i: integer;
DT: TRegDataInfo;
begin
try
SL:=TStringList.Create;
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE; //откуда
Reg.OpenKey(aKey, false);
Reg.GetValueNames(SL);
Reg2:=TRegistry.Create;
Reg2.RootKey:=HKEY_CURRENT_USER; //куда
if Reg2.KeyExists(aKey) then exit;
Reg2.OpenKey(aKey, True);
for i:=0 to Sl.Count-1 do
begin
DT.RegData:=Reg.GetDataType(SL);
if (DT.RegData=rdInteger) then
Reg2.WriteInteger(SL, Reg.ReadInteger(SL));
if (DT.RegData=rdString) then
Reg2.WriteString(SL, Reg.ReadString(SL));
end;
Reg.GetKeyNames(SL);
for i:=0 to Sl.Count-1 do
begin
RegCopy(aKey+'\'+SL);
end;
except
FreeAndNil(Reg);
FreeAndNil(Reg2);
FreeAndNil(SL);
end;
end;
Эти условия проверяют только 2 типа параметров — численные и строковые,
Если надо проверить другие типы, придется добавить подобные условия для нужных типов
if (DT.RegData=rdInteger) then
Reg2.WriteInteger(SL, Reg.ReadInteger(SL));
if (DT.RegData=rdString) then
Reg2.WriteString(SL, Reg.ReadString(SL));
Пример использования:
Try
RegCopy('\SOFTWARE\YourKey'); //при необходимости подрекдактировать
Except
end;
Пост написан при поддержке master-komp — ремонт компьютеров на дому.
Даже самая современная техника имеет свойство… выходить из строя, причем обычно в самый неподходящий момент. И далеко не каждый обладатель компьютера может самостоятельно найти причину, устранить поломку. Поэтому нет ничего удивительного в том, что большой популярностью пользуются сегодня фирмы, в перечень услуг которых входят починка компьютеров, лечение от вирусов, установка разнообразного программного обеспечения.
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
![пеллетные котлы](http://programmersclub.ru/respective.jpg)
пеллетные котлы
![пеллетный котел](http://programmersclub.ru/emtas.jpg)
Пеллетный котел Emtas
![форум программистов](http://programmersclub.ru/banf336х280.gif)
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)