Sign in Join
Wiki copytemporary

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

OldNewLine
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).*

Back to history