fcl-registry/ru
fcl-registry это модуль FCL, обеспечивает доступ к реестру Windows.
Термины реестра
RootKey: куст реестра, в котором вы хотите начать доступ к реестру. Примеры: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER
Ключ (key): куть к "каталогу" который содержит отдельные данные. Это немного трудно для понимания, но осталось для совместимости с более ранними версиями реестра.
Имя/значение: фактическая пара имя/значение в ключе реестра "каталог". Каждый ключ может иметь значение по умолчанию, чье имя '' (пустая строка).
Пример
Пример, который пытается получить значение по умолчанию по адресу HKLM\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command:
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
- KEY_WOW64_64KEY: Доступ к 64-битному ключу из 32-битного или 64-битного приложения.
- KEY_WOW64_32KEY: Access a 32-битному ключу из 32-битного или 64-битного приложения.
Эти ключи определены в модуле registry , так что вы можете просто использовать их: например, в свойстве Access объекта реестра, вот так:
Registry := TRegistry.Create;
Try
Registry.Access:=Registry.Access or KEY_WOW64_64KEY;или в вызове registry.create, вот так:
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.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
