2011년 3월 15일 화요일

레지스트리 바이너리값 읽기

바이트의 배열로 읽어들여서 하나씩 출력하는 예제.


procedureTForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
Size: Integer;
Buffer: array ofByte;
i: Integer;

begin
Reg:=TRegistry.Create;
try
ifReg.OpenKeyReadOnly('Software\TestKey') then begin
Size:=Reg.GetDataSize('RegBinary');
SetLength(Buffer, Size);
Reg.ReadBinaryData('RegBinary', Buffer[0], Size);
fori:=0toSize-1doMemo1.Lines.Add(Format('[%2d] = %x', [i, Buffer[i]]));
end;
finally
FreeAndNil(Reg);
end;
end;






만약 전부 문자열이라면 String 으로 읽어들이면 되는데 그 방법이 Byte 배열과 약간 다르다.
아래와 같이 하면 됨.


procedureTForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
Size: Integer;
Buffer: String;

begin
Reg:=TRegistry.Create;
try
if
Reg.OpenKeyReadOnly('Software\TestKey') then begin
Size:=Reg.GetDataSize('RegBinary');
SetLength(Buffer, Size);
Reg.ReadBinaryData('RegBinary', Buffer[1], Size);

Memo1.Lines.Add(Buffer);
end;
finally
FreeAndNil(Reg);
end;
end;

댓글 없음:

댓글 쓰기