![]() |
|
#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. Skype: Lotles-XXXX ![]() |
#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; |