fcl-registry/ru: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: fcl-registry/ru
| Old | New | Line | |
|---|---|---|---|
| 1 | + | fcl-registry это модуль [[FCL]], обеспечивает доступ к реестру Windows. | |
| 2 | + | ||
| 3 | + | ## Contents | |
| 4 | + | ||
| 5 | + | * 1 Термины реестра | |
| 6 | + | * 2 Пример | |
| 7 | + | * 3 Доступ к 64-битному и 32-битнму реестру | |
| 8 | + | * 4 Административные права | |
| 9 | + | * 5 См. также | |
| 10 | + | ||
| 11 | + | ## Термины реестра | |
| 12 | + | ||
| 13 | + | RootKey: куст реестра, в котором вы хотите начать доступ к реестру. Примеры: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER | |
| 14 | + | ||
| 15 | + | Ключ (key): куть к "каталогу" который содержит отдельные данные. Это немного трудно для понимания, но осталось для совместимости с более ранними версиями реестра. | |
| 16 | + | ||
| 17 | + | Имя/значение: фактическая пара имя/значение в ключе реестра "каталог". Каждый ключ может иметь значение по умолчанию, чье имя _(пустая строка)._ | |
| 18 | + | ||
| 19 | + | ## Пример | |
| 20 | + | ||
| 21 | + | Пример, который пытается получить значение по умолчанию по адресу HKLM\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command: | |
| 22 | + | ``` | |
| 23 | + | uses ... registry... | |
| 24 | + | ||
| 25 | + | var | |
| 26 | + | CompileCommand: string=''; | |
| 27 | + | Registry: TRegistry; | |
| 28 | + | begin | |
| 29 | + | Registry := TRegistry.Create; | |
| 30 | + | try | |
| 31 | + | // Navigate to proper "directory": | |
| 32 | + | Registry.RootKey := HKEY_LOCAL_MACHINE; | |
| 33 | + | if Registry.OpenKeyReadOnly('\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command') then | |
| 34 | + | CompileCommand:=Registry.ReadString(''); //read the value of the default name | |
| 35 | + | finally | |
| 36 | + | Registry.Free; | |
| 37 | + | end; | |
| 38 | + | end; | |
| 39 | + | ``` | |
| 40 | + | ||
| 41 | + | ## Доступ к 64-битному и 32-битнму реестру | |
| 42 | + | ||
| 43 | + | Если вы имеете 64-разрядную Windows, реестр разделен на 64-битную и 32-битную часть (совместимость). По умолчанию, если вы запускаете 32-битный процесс, вы увидите 32-битную часть, а если 64-битное приложение — 64-битную часть. | |
| 44 | + | ||
| 45 | + | Вы также можете получить доступ к 32-битной части из 64-битных приложений, и наоборот. Из MSDN: <http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129%28v=vs.85%29.aspx> | |
| 46 | + | ||
| 47 | + | * KEY_WOW64_64KEY: Доступ к 64-битному ключу из 32-битного или 64-битного приложения. | |
| 48 | + | * KEY_WOW64_32KEY: Access a 32-битному ключу из 32-битного или 64-битного приложения. | |
| 49 | + | ||
| 50 | + | Эти ключи определены в модуле registry , так что вы можете просто использовать их: например, в свойстве Access объекта реестра, вот так: | |
| 51 | + | ``` | |
| 52 | + | Registry := TRegistry.Create; | |
| 53 | + | Try | |
| 54 | + | Registry.Access:=Registry.Access or KEY_WOW64_64KEY; | |
| 55 | + | ``` | |
| 56 | + | ||
| 57 | + | или в вызове registry.create, вот так: | |
| 58 | + | ``` | |
| 59 | + | TRegistry.Create(KEY_READ or KEY_WOW64_64KEY); | |
| 60 | + | ``` | |
| 61 | + | ||
| 62 | + | ## Административные права | |
| 63 | + | ||
| 64 | + | В зависимости от того, что вы хотите читать/писать в реестр, вам может понадобиться повышение прав администратора (Windows Vista+). Смотрите [[IDE Window: Project Options|IDE_Window:_Project_Options#Use_manifest_file_to_set_execution_level_.28Windows_only.29]] | |
| 65 | + | ||
| 66 | + | ## См. также | |
| 67 | + | ||
| 68 | + | * [[Package List]] | |
| 69 | + | ||
| 70 | + | --- | |
| 71 | + | *From the Free Pascal wiki, page "fcl-registry/ru", as the Internet Archive kept it on 2025-02-18. 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](/wiki-contact).* |
