![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с реестром [NT4, Win2k]
likeanangel © (2003-05-19 19:10:00)Уважаемые Мастера!
Сбросьте пожалуйста какой-нибудь образец реально работающего кода с вызовами RegSaveKey/RegLoadKey - у меня почему-то не получается ;((
Максим
Coban (2003-05-20 00:36:00) [1]
const
Key = "SOFTWARE\TestCompany\TestProgram"; //базовый путь в реестре
function OpenKey(SubKey: String; var Handle: HKEY): Boolean;
begin
Result := RegCreateKey(HKEY_CURRENT_USER, PChar(Key + SubKey), Handle) = ERROR_SUCCESS;
end;
function CloseKey(var Handle: HKey): Boolean;
begin
Result := RegCloseKey(Handle) = ERROR_SUCCESS;
end;
function WriteOption(const Option: String; Value: Integer): Boolean;
var
Handle: HKey;
begin
Result := False;
if not OpenKey("", Handle) then Exit;
Result := (RegSetValueEx(Handle, PChar(Option), 0, REG_DWORD, @Value, SizeOf(Value)) = ERROR_SUCCESS);
CloseKey(Handle);
end;
function ReadOption(const Option: String; var Res: Integer): Boolean;
var
IntBuffer: Integer;
DataType, BufSize: Integer;
Handle: HKey;
begin
Result := False;
if not OpenKey("", Handle) then Exit;
IntBuffer := 0;
BufSize := SizeOf(IntBuffer);
Result := (RegQueryValueEx(Handle, PChar(Option), nil, @DataType, @IntBuffer, @BufSize) = ERROR_SUCCESS);
CloseKey(Handle);
Res := IntBuffer;
end;
потом где-нить:
<.....>
var
b: Integer;
begin
WriteOption("SuperVar", 123); //сохранить в ключ SuperVar
<....>
if ReadOption("SuperVar", b) then begin
<...>
end else
<ключа не существует>
end;
VMcL (2003-05-19 19:24:00) [2]См. модуль Registry, класс TRegistry