안녕하세요 델파이 초보 하늘입니다.. 이렇게 또 질문을 드립니다..
제가 레지에있는 binary값을 읽어오고 쓰고하는 작업을 해야하는데요..
이것저것찾아보고 여기서 검색을해보니.. 몇가지가 나오더라구요..
그래서 따라해봤는데요..
procedure TForm1.Button1Click(Sender: TObject);
const KeyName = 'aaa\bbb\ccc';
var
objReg : TRegistry;
buffer : String;
begin
buffer := '';
objReg := TRegistry.Create;
objReg.RootKey := HKEY_CURRENT_USER;
objReg.OpenKey(KeyName,False);
// objReg.ReadBinaryData('test', buffer, 1);
objReg.ReadBinaryData('Policies', buffer, sizeof('Policies'));
// ListBox1.Items.Add(buff);
objReg.Free;
end;
이런식으로 해보았습니다..
그런데 컴파일시 에러는 없는데요.. 실행시키면..
Invalid data type for 'test' 라는 에러메세지가 출력됩니다..
ListBox1을 막고해도 에러가나구요...
음.. 다른것도 잘 모르지만 Registry에 대해선 너무몰라 이렇게 질문을 드립니다..
type은 상관없다고 읽은것같은데.. 음..
고수님들의 관심을 받고싶습니다.. 부탁드립니다~ 식사맛나게 하시구요 ^^
추운날씨 감기조심하시구요~ ^^
size 라는 변수하나 만드셔서 GetDataSize로 크기를 읽어오신후 해보세요..
대충 고쳐보면 아래처럼..될텐데.. 테스트 해보세요..
즐거운 프로그래밍 하시구요...
procedure TForm1.Button1Click(Sender: TObject);
const KeyName = 'aaa\bbb\ccc';
var
objReg : TRegistry;
buffer : String;
size : integer; //<------------------크기 읽어올 변수 선언
begin
buffer := '';
objReg := TRegistry.Create;
try
objReg.RootKey := HKEY_CURRENT_USER;
objReg.OpenKey(KeyName,False);
size := reg.GetDataSize('test'); //<----- 크기 읽어오기
objReg.ReadBinaryData('test', buffer, size); //<- 데이타 가져오기
ListBox1.Items.Add(buff);
finally
objReg.Free;
end;
end;