Sign in Join
Wiki copytemporary

fcl-registry/ru: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-fcl-registry это модуль [[FCL]], обеспечивает доступ к реестру Windows.
2-
3-## Contents
4-
5- * 1 Термины реестра
6- * 2 Пример
7- * 3 Доступ к 64-битному и 32-битнму реестру
8- * 4 Административные права
9- * 5 См. также
1+fcl-registry это модуль [[FCL]], обеспечивает доступ к реестру Windows.
102
113## Термины реестра
124
13-RootKey: куст реестра, в котором вы хотите начать доступ к реестру. Примеры: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER
5+RootKey: куст реестра, в котором вы хотите начать доступ к реестру. Примеры: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER
146
15-Ключ (key): куть к "каталогу" который содержит отдельные данные. Это немного трудно для понимания, но осталось для совместимости с более ранними версиями реестра.
7+Ключ (key): куть к "каталогу" который содержит отдельные данные. Это немного трудно для понимания, но осталось для совместимости с более ранними версиями реестра.
168
17-Имя/значение: фактическая пара имя/значение в ключе реестра "каталог". Каждый ключ может иметь значение по умолчанию, чье имя _(пустая строка)._
9+Имя/значение: фактическая пара имя/значение в ключе реестра "каталог". Каждый ключ может иметь значение по умолчанию, чье имя '' (пустая строка).
1810
1911## Пример
2012
21-Пример, который пытается получить значение по умолчанию по адресу HKLM\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command:
22-```
13+Пример, который пытается получить значение по умолчанию по адресу HKLM\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command:
14+
15+``` pascal
2316uses ... 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;
17+
18+var
19+ CompileCommand: string='';
20+ Registry: TRegistry;
21+begin
22+ Registry := TRegistry.Create;
23+ try
24+ // Navigate to proper "directory":
25+ Registry.RootKey := HKEY_LOCAL_MACHINE;
26+ if Registry.OpenKeyReadOnly('\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command') then
27+ CompileCommand:=Registry.ReadString(''); //read the value of the default name
28+ finally
29+ Registry.Free;
30+ end;
31+end;
3932```
4033
4134## Доступ к 64-битному и 32-битнму реестру
4235
43-Если вы имеете 64-разрядную Windows, реестр разделен на 64-битную и 32-битную часть (совместимость). По умолчанию, если вы запускаете 32-битный процесс, вы увидите 32-битную часть, а если 64-битное приложение — 64-битную часть.
36+Если вы имеете 64-разрядную Windows, реестр разделен на 64-битную и 32-битную часть (совместимость). По умолчанию, если вы запускаете 32-битный процесс, вы увидите 32-битную часть, а если 64-битное приложение — 64-битную часть.
4437
4538Вы также можете получить доступ к 32-битной части из 64-битных приложений, и наоборот. Из MSDN: <http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129%28v=vs.85%29.aspx>
4639
47- * KEY_WOW64_64KEY: Доступ к 64-битному ключу из 32-битного или 64-битного приложения.
48- * KEY_WOW64_32KEY: Access a 32-битному ключу из 32-битного или 64-битного приложения.
40+- KEY_WOW64_64KEY: Доступ к 64-битному ключу из 32-битного или 64-битного приложения.
41+- KEY_WOW64_32KEY: Access a 32-битному ключу из 32-битного или 64-битного приложения.
4942
50-Эти ключи определены в модуле registry , так что вы можете просто использовать их: например, в свойстве Access объекта реестра, вот так:
51-```
43+Эти ключи определены в модуле registry , так что вы можете просто использовать их: например, в свойстве Access объекта реестра, вот так:
44+
45+``` pascal
5246Registry := TRegistry.Create;
53- Try
54- Registry.Access:=Registry.Access or KEY_WOW64_64KEY;
47+Try
48+ Registry.Access:=Registry.Access or KEY_WOW64_64KEY;
5549```
5650
57-или в вызове registry.create, вот так:
58-```
51+или в вызове registry.create, вот так:
52+
53+``` pascal
5954TRegistry.Create(KEY_READ or KEY_WOW64_64KEY);
6055```
6156
6257## Административные права
6358
6459В зависимости от того, что вы хотите читать/писать в реестр, вам может понадобиться повышение прав администратора (Windows Vista+). Смотрите [[IDE Window: Project Options|IDE_Window:_Project_Options#Use_manifest_file_to_set_execution_level_.28Windows_only.29]]
6560
6661## См. также
6762
68- * [[Package List]]
63+- [[Package List]]
6964
7065---
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).*
66+*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](/wiki-contact).*

Back to history