![]() |
|
|
#1
|
||||
|
||||
|
Здравствуйте !!!
Подскажите, почему в Str не записывается значение из реестра, MenuHeight в реестре равно -285, а у меня показывает 'ничего', Str:='' Код: Код:
procedure TForm1.Button1Click(Sender: TObject);
var
reg:TregIniFile;
Str:String;
begin
reg := TRegIniFile.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('Control Panel\Desktop\WindowMetrics', True);
Str:=reg.ReadString('WindowMetrics','MenuHeight',' ');
ShowMessage(Str);
end;
end. |
|
#2
|
||||
|
||||
|
Строковый параметр из реестра читаеться так
Код:
function RegQueryStr(RootKey: HKEY; Key, Name: string;
Success: PBoolean = nil): string;
var
Handle: HKEY;
Res: LongInt;
DataType, DataSize: DWORD;
begin
if Assigned(Success) then
Success^ := False;
Res := RegOpenKeyEx(RootKey, PChar(Key), 0, KEY_QUERY_VALUE, Handle);
if Res <> ERROR_SUCCESS then
Exit;
Res := RegQueryValueEx(Handle, PChar(Name), nil, @DataType, nil, @DataSize);
if (Res <> ERROR_SUCCESS) or (DataType <> REG_SZ) then
begin
RegCloseKey(Handle);
Exit;
end;
SetString(Result, nil, DataSize - 1);
Res := RegQueryValueEx(Handle, PChar(Name), nil, @DataType,
PByte(@Result[1]), @DataSize);
if Assigned(Success) then
Success^ := Res = ERROR_SUCCESS;
RegCloseKey(Handle);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Str:String;
begin
str:=RegQueryStr(HKEY_CURRENT_USER, 'Control Panel\Desktop\WindowMetrics', 'MenuHeight');
ShowMessage(Str);
end; |