Sign in Join
Wiki copytemporary

fcl-registry/ru

English · Español · Русский

fcl-registry это модуль FCL, обеспечивает доступ к реестру Windows.

Термины реестра

RootKey: куст реестра, в котором вы хотите начать доступ к реестру. Примеры: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER

Ключ (key): куть к "каталогу" который содержит отдельные данные. Это немного трудно для понимания, но осталось для совместимости с более ранними версиями реестра.

Имя/значение: фактическая пара имя/значение в ключе реестра "каталог". Каждый ключ может иметь значение по умолчанию, чье имя '' (пустая строка).

Пример

Пример, который пытается получить значение по умолчанию по адресу HKLM\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command:

pascal
uses ... registry...

var
  CompileCommand: string='';
  Registry: TRegistry;
begin
  Registry := TRegistry.Create;
  try
    // Navigate to proper "directory":
    Registry.RootKey := HKEY_LOCAL_MACHINE;
    if Registry.OpenKeyReadOnly('\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command') then
      CompileCommand:=Registry.ReadString(''); //read the value of the default name
  finally
    Registry.Free;
  end;
end;

Доступ к 64-битному и 32-битнму реестру

Если вы имеете 64-разрядную Windows, реестр разделен на 64-битную и 32-битную часть (совместимость). По умолчанию, если вы запускаете 32-битный процесс, вы увидите 32-битную часть, а если 64-битное приложение — 64-битную часть.

Вы также можете получить доступ к 32-битной части из 64-битных приложений, и наоборот. Из MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129%28v=vs.85%29.aspx

Эти ключи определены в модуле registry , так что вы можете просто использовать их: например, в свойстве Access объекта реестра, вот так:

pascal
Registry := TRegistry.Create;
Try
  Registry.Access:=Registry.Access or KEY_WOW64_64KEY;

или в вызове registry.create, вот так:

pascal
TRegistry.Create(KEY_READ or KEY_WOW64_64KEY);

Административные права

В зависимости от того, что вы хотите читать/писать в реестр, вам может понадобиться повышение прав администратора (Windows Vista+). Смотрите IDE_Window:Project_Options#Use_manifest_file_to_set_execution_level.28Windows_only.29

См. также


From the Free Pascal wiki, page "fcl-registry/ru", as it stood on 2020-02-14 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.