Win9x기반에서는 reg.readstring 매써드를 이용하여 값을 성공적으로 읽어 올 수 있었습니다. (물론 이에 앞선 사전 작없이 추가로 필요함)
Win9x와 NT기반에서는 registry값을 저장하는 방식이 다른 것 같은데...
WinNT기반 환경에서 REG_MULTI_SZ Tpye의 값을 읽어 올 수 있는 방법을 알고 싶습니다.
이 형식의 값들은 '값이름1=값1 값이름2=값2..."모양의 블락형태로 저장되어 있습니다.
API함수에 RegQueryValueEx 등이 있는 것 같은데, 이런 API함수를 써야 하나요?
구체적인 사용 방법을 아시는 분이 있으면 알려 주시면 대단히 감사하겠습니다.
물론 API함수인 RegQueryValueEx를 쓰셔두 되지만 델파이의 TRegistry를 쓰신다면 굳이 이렇게 할 필요는 없습니다....
TRegistry.ReadBinaryData를 쓰시면 됩니다.
const
SubKey: string = '서브키문자열......';
ValueName: string = '값문자열......';
var
RegFile: TRegistry;
ValueSize: Integer;
ValueBuf: PChar;
begin
RegFile := Tregistry.Create;
try
RegFile.RootKey := HKEY_LOCAL_MACHINE;
if RegFile.OpenKey(SubKey, False) then
begin
ValueSize := RegFile.GetDataSize(ValueName);
GetMem(ValueBuf, ValueSize);
try
if RegFile.ReadBinaryData(ValueName, ValueBuf^, ValueSize) <> 0 then
begin
ShowMessage(ValueBuf);
end;
finally
FreeMem(ValueBuf);
end;
end;
finally
RegFile.Free;
end;
end;
^^ 항상 즐코하세요...