Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Создать подраздел в реестре:
RegCreateKey (Key:HKey; SubKey: PChar; var Result: HKey): Longint;
Открыть подраздел:
RegOpenKey(Key: HKey; SubKey: PChar; var Result: HKey): Longint;
Закрывает раздел:
RegCloseKey(Key: HKey): Longint;
Удалить подраздел:
RegDeleteKey(Key: HKey; SubKey: PChar): Longint;
Получить имена всех подразделов раздела Key:
RegEnumKey(Key:HKey; index: Longint; Buffer: PChar; cb: Longint): Longint;
Возвращает текстовую строку, связанную с ключом KeySubKey:
RegQueryValue(Key: HKey; SubKey: PChar; Value: PChar; varcb: Longint): Longint;
Задать новое значение ключу KeySubKey:
RegSetValue(Key: HKey; SubKey: PChar; ValType: Longint; Value: PChar; cb: Longint): Longint;
Удаляет значение lpValueName находящееся в ключе hKey:
RegDeleteValue(HKEY hKey, LPCTSTR lpValueName);
Выдает список значений у ключа hKey:
LONG RegEnumValue( HKEY hKey, DWORD dwIndex, LPTSTR lpValueName, LPDWORD lpcbValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
Примечание:
При каждой новом вызове функции после предыдущего нужно заново переназначить
lpcbValueName.
lpcbValueName = sizeof(lpValueName)
Примеры:
{ Создаем список всех подразделов указанного раздела } procedure TForm1.Button1Click(Sender: TObject); var MyKey: HKey; { Handle для работы с разделом } Buffer: array[0 .. 1000] of char; { Буфер } Err, { Код ошибки } index: longint; { Индекс подраздела } begin Err := RegOpenKey(HKEY_CLASSES_ROOT, 'DelphiUnit', MyKey); { Открыли раздел } if Err <> ERROR_SUCCESS then begin MessageDlg('Нет такого раздела !!', mtError, [mbOk], 0); exit; end; index := 0; {Определили имя первого подраздела } Err := RegEnumKey(MyKey, index, Buffer, Sizeof(Buffer)); while err = ERROR_SUCCESS do { Цикл, пока есть подразделы } begin memo1.lines.add(StrPas(Buffer)); { Добавим имя подраздела в список } inc(index); { Увеличим номер подраздела } Err := RegEnumKey(MyKey, index, Buffer, Sizeof(Buffer)); { Запрос } end; RegCloseKey(MyKey); { Закрыли подраздел } end;