아~~~ 10월의 첫날 이리 질문을 하나 올려 봅니다.
9월부터 계속 고민하다 안되어서 어케 하는지 좀 고수님들.. 바쁘시더라도.. 좀 힌트를 주시면
감사.. 또 감사 하겠습니다.
DWORD 의 숫자 값을 레지스터리로 저장을 한 후...
프로그램 시작 시 이 값을 읽어 다시 DWORD 에 넣어 주어야 되는데. 어케 형 변환을 시켜
주어야 되는지 몰라서요~~ ㅠㅠ
var
sSt : String;
dDw : DWORD;
begin
sSt := '123456789012';
dDW <- sSt 라는 값을 어케 넣어야 되는지 좀 가르쳐 주세여. 부디. ㅠㅠ
end;
DWORD 값에 준헌님이 쓰신 값이 들어가긴 하나요?
DWOPRD = Longword 0..4294967295 unsigned 32-bit
저값은 DWORD 의 범위값을 넘어선거 같은데;;
아래 DWORD 형을 레지스트리에 읽고 쓰는 함수를 참고하세요.. 저두 언젠가 퍼둔건데..
그럼.. 즐거운 프로그래밍 하시길~
function ReadDWORD(vKey, vName: String): DWORD;
var
iType: DWORD;
iSize: DWORD;
iResult: Array [0..3] of Byte;
hkResult: HKEY;
begin
Result:=0;
iType:=REG_DWORD;
iSize:=4;
if RegOpenKeyEx(HKEY_LOCAL_MACHINE,LPTSTR(vKey), 0, KEY_READ, hkResult)<>ERROR_SUCCESS then
Exit;
if RegQueryValueEx(hkResult,LPTSTR(vName),Nil,@iType,@iResult,@iSize)=ERROR_SUCCESS then
begin
Result:=iResult[0]+(iResult[1] SHL 8)+(iResult[2] SHL 16)+(iResult[3] SHL 24);
end;
end;
function WriteDWORD(vKey, vName: String; iValue: DWORD): Boolean;
var
iType: DWORD;
iSize: DWORD;
hkResult: HKEY;
ibValue: Array [0..3] of Byte;
begin
Result:=False;
if RegOpenKeyEx(HKEY_LOCAL_MACHINE,LPTSTR(vKey), 0, KEY_WRITE, hkResult)<>ERROR_SUCCESS then
Exit;
iType:=REG_DWORD;
iSize:=4;
ibValue[0]:=(iValue AND $000000FF);
ibValue[1]:=(iValue AND $0000FF00) SHR 8;
ibValue[2]:=(iValue AND $00FF0000) SHR 16;
ibValue[3]:=(iValue AND $FF000000) SHR 24;
if RegSetValueEx(hkResult,LPTSTR(vName),0,iType,@ibValue[0],iSize)=ERROR_SUCCESS then
Result:=True;
end;