카테고리 없음

InstallScript Registry Read,Write Example

Soul-Learner 2013. 4. 20. 12:11

레지스트리 키 및 값을 등록하는 함수 작성
function CreateRegInstallDir()
STRING szKey; // 레지스트리 키 경로
STRING szAppKey; // App 레지스트리 키 경로
STRING szApp; // App 이름
STRING szInstallDir;        // InstallDir 값 이름
begin                                      
REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);          
szKey = "Software\\COMPANY\\AA\\BB";                     
szAppKey = "Software\\COMPANY\\AA\\BB\\Demo";
szApp = "Demo";                        
szInstallDir = "InstallDir";  
if (0 < RegDBKeyExist (szAppKey)) then 
RegDBCreateKeyEx(szKey, szApp);
endif;          
RegDBSetKeyValueEx(szAppKey, szInstallDir, REGDB_STRING, TARGETDIR, -1);  
REGDB_OPTIONS = REGDB_OPTIONS & ~REGDB_OPTION_WOW64_64KEY;
end; 


RegDBKeyExist() 함수를 이용하여 레지스트리 키가 있는지 검사한다. 없으면 RegDBCreateKeyEx() 함수를 이용하여 키를 생성한다. 값을 등록할때는 RegDBSetKeyValueEx() 함수를 이용한다. 마지막 파라미터로 기록할 값의 길이를 지정해 줘야 하는데 -1을 넘겨주면 알아서 계산해 준다. -1 파라미터를 사용할 수 있는 레지스트리 값 타입이 따로 있으니 조심.

각 함수는 도움말을 참조 하면 자세히 알 수 있다.





레지스트리 삭제
szKey = "Software\\App\\Data";
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);         
if (1 == RegDBKeyExist (szKey)) then 
RegDBDeleteKey (szKey); 
endif;