Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 450

•  TDictionary Custom Sort  6 483

•  Fast Watermark Sources  6 281

•  3D Designer  9 224

•  Sik Screen Capture  6 615

•  Patch Maker  6 994

•  Айболит (remote control)  6 998

•  ListBox Drag & Drop  5 867

•  Доска для игры Реверси  97 059

•  Графические эффекты  7 198

•  Рисование по маске  6 501

•  Перетаскивание изображений  5 365

•  Canvas Drawing  5 741

•  Рисование Луны  5 454

•  Поворот изображения  4 981

•  Рисование стержней  3 535

•  Paint on Shape  2 803

•  Генератор кроссвордов  3 669

•  Головоломка Paletto  2 959

•  Теорема Монжа об окружностях  3 763

•  Пазл Numbrix  2 481

•  Заборы и коммивояжеры  3 166

•  Игра HIP  2 132

•  Игра Go (Го)  2 066

•  Симулятор лифта  2 438

•  Программа укладки плитки  2 113

•  Генератор лабиринта  2 584

•  Проверка числового ввода  2 264

•  HEX View  2 591

•  Физический маятник  2 202

 
скрыть

Чтение строки из реестра без использования класса TRegistry



{ **** UBPFD *********** by delphibase.endimus.com ****
>> Чтение строки из реестра без использования класса TRegistry

Входные параметры:
RootKey - идентификатор корневого раздела реестра, например
HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE и т.д.

Key - имя раздела реестра,

Name - имя параметра, для чтения параметра "По умолчанию" ("Default"),
эта строка должна быть пустой

Success - (необязательный параметр) адрес логической переменной, в которую
будет Тrue в случае успеха или False в случае ошибки.

В случае успеха функция возвращает значение параметра, или
пустую строку при возникновении ошибки чтения из реестра

Зависимости: Windows
Автор:       Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright:   Dimka Maslov
Дата:        13 мая 2002 г.
***************************************************** }

function RegQueryStr(RootKey: HKEY; Key, Name: string;
  Success: PBoolean = nil): string;
var
  Handle: HKEY;
  Res: LongInt;
  DataType, DataSize: DWORD;
begin
  if Assigned(Success) then
    Success^ := False;
  Res := RegOpenKeyEx(RootKey, PChar(Key), 0, KEY_QUERY_VALUE, Handle);
  if Res <> ERROR_SUCCESS then
    Exit;
  Res := RegQueryValueEx(Handle, PChar(Name), nil, @DataType, nil, @DataSize);
  if (Res <> ERROR_SUCCESS) or (DataType <> REG_SZ) then
  begin
    RegCloseKey(Handle);
    Exit;
  end;
  SetString(Result, nil, DataSize - 1);
  Res := RegQueryValueEx(Handle, PChar(Name), nil, @DataType,
    PByte(@Result[1]), @DataSize);
  if Assigned(Success) then
    Success^ := Res = ERROR_SUCCESS;
  RegCloseKey(Handle);
end;

Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit1.Text := RegQueryStr(HKEY_CLASSES_ROOT, 'AVIFile\shell\open\command', '');
end;