셋업 SDK 키트가 아주 잘 만들어진(?) 프로그램이길 바라며, 일종의 모험을 해 보았는데, 두 개의 체크박스의 ControlID는 451, 452이고, 오른쪽의 설치 용량을 나타내는 캡션은 541, 542였다. 체크박스와 용량 표시 캡션을 그룹으로 만들어 필요한 사전 개수대로 복사를 하고, 각각의 controlID를 453과 543부터 457, 547까지 차례로 바꾸어 주었다.
TAB 키를 눌렀을 때 증가되는 숫자인 TabIndex을 맞추기위해 도구상자의 [1,2] 버튼을 눌러서 커스터마이징을 한다. 세세한 부분까지 신경을 써주어야 좋은 프로그램이 되는 것임을 소프트웨어 개발에 입문하려는 사람들은 명심하자.
[Test] 버튼을 눌러보면 체크표시는 되지만 용량 표시는 나오지 않는다. 런타임에 설치 프로그램이 SETUP.LST파일의 설치할 파일 리스트를 읽어내어 표시하는 것이기 때문이다. 용량은 DIR한 결과를 적어두었다가 SETUP.INF와 SETUP.LST 일부를 바꾸어 주어야 한다.
[리스트 5] WINDIC의 SETUP.LST
[Params]
WndTitle = WinDic 3.0 Setup
WndMess = WinDic 3.0 셋업 초기화 ...
TmpDirSize = 500
TmpDirName = ~msstfqf.t
CmdLine = _mstest setup.mst /C "/S %s %s"
DrvModName = DSHELL
[Files]
setpfile\setup.mst = setup.mst
setup.inf = setup.inf
setpfile\setupapi.in_ = setupapi.inc
setpfile\setup.mst = setup.mst
setup.inf = setup.inf
setpfile\setupapi.in_ = setupapi.inc
setpfile\mscomstf.dl_ = mscomstf.dll
setpfile\msdetstf.dl_ = msdetstf.dll
setpfile\msdetect.in_ = msdetect.inc
setpfile\msinsstf.dl_ = msinsstf.dll
setpfile\msuilstf.dl_ = msuilstf.dll
setpfile\msshlstf.dl_ = msshlstf.dll
setpfile\mscuistf.dll = mscuistf.dll
setpfile\ver.dll = ver.dll
setpfile\_mstest.ex_ = _mstest.exe
SETUP.LST는 셋업 SDK 각 파일에 대한 정보를 적어두는 곳이다. SETUP.EXE를 실행하면 나타나는
윈도우 타이틀 바 캡션으로 "WinDic 3.0 Setup"이란 문자열을 넣어주고, 클라이언트 영역에 나
타날 메시지인 "Initializing Wintoon..." 대신 "WinDic 3.0 셋업 초기화 ... "라는 문자열로 대치해
주면 SETUP.EXE가 이 문자열들을 읽어들이도록 되어 있다. 그외 나머진 건들 필요가 없는 부분이다.
[리스트 6] WINDIC의 SETUP.INF
[Source Media Descriptions]
"1", "Copying WinDic Files...", "WINDIC.EXE", "."
"2", "Copying Speech Files...", "", "."
[Default File Settings]
"STF_BACKUP" = ""
"STF_COPY" = "YES"
"STF_DECOMPRESS" = "YES"
"STF_OVERWRITE" = "OLDER"
"STF_ROOT" = ""
"STF_READONLY" = ""
"STF_SETTIME" = ""
"STF_TIME" = ""
"STF_VITAL" = "YES"
[WINSYS]
1, ctl3d.dll,,,, 1996-08-01,!DECOMPRESS,, OLDER, !READONLY,,, ROOT,,, 21008,,,,,
[APPFILES]
1, logo\wd_logo.exe,,,, 1996-07-21, !DECOMPRESS,, OLDER, !READONLY,,,,,, 284672,,,,,
1, logo\wd_abou.exe,,,, 1996-07-21, !DECOMPRESS,, OLDER, !READONLY,,,,,, 288768,,,,,
1, logo\windic1.bmp,,,, 1996-07-09, !DECOMPRESS,, OLDER, !READONLY,,,,,, 60158,,,,,
1, logo\windic2.bmp,,,, 1996-07-09, !DECOMPRESS,, OLDER, !READONLY,,,,,, 119578,,,,,
1, windic.exe,,,, 1996-07-26, !DECOMPRESS,, OLDER, !READONLY,,,,,, 565248,,,,,
1, windic.HLP,,,, 1996-07-25, !DECOMPRESS,, OLDER, !READONLY,,,,,, 540201,,,,,
1, windic95.HLP,,,, 1996-07-25, !DECOMPRESS,, OLDER, !READONLY,,,,,, 160681,,,,,
1, readme.txt,,,, 1996-07-26, !DECOMPRESS,, OLDER, !READONLY,,,,,, 2198,,,,,
1, hoodll.dll,,,, 1996-08-01, !DECOMPRESS,, OLDER, !READONLY,,,,,, 9297,,,,,
1, WINDIC1.WAV,,,, 1996-08-01, !DECOMPRESS,, OLDER, !READONLY,,,,,, 15284,,,,,
1, WINDIC2.WAV,,,, 1996-08-01, !DECOMPRESS,, OLDER, !READONLY,,,,,, 3724,,,,,
1, ASCII_P.FNT,,,, 1996-08-01, !DECOMPRESS,, OLDER, !READONLY,,,,,, 1504,,,,,
[SAMPLE]
1, ENGHAN.IDX,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 3938310,,,,,
1, HANENG.IDX,,,, 1996-04-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 3306502,,,,,
1, ENGHAN.DIC,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 11145009,,,,,
1, HANENG.DIC,,,, 1996-04-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 8983596,,,,,
1, ENGHAN.REF,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 6083382,,,,,
1, HANENG.REF,,,, 1996-04-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 5685579,,,,,
[SAMPLE2]
1, HANHAN.IDX,,,, 1996-05-19, !DECOMPRESS,, OLDER, !READONLY,,,,,, 4568070,,,,,
1, HANHAN.DIC,,,, 1996-05-19, !DECOMPRESS,, OLDER, !READONLY,,,,,, 12304848,,,,,
1, HANHAN.REF,,,, 1996-05-19, !DECOMPRESS,, OLDER, !READONLY,,,,,, 8380881,,,,,
[SAMPLE3]
1, ENGENG.IDX,,,, 1996-06-09, !DECOMPRESS,, OLDER, !READONLY,,,,,, 1971206,,,,,
1, ENGENG.DIC,,,, 1996-06-09, !DECOMPRESS,, OLDER, !READONLY,,,,,, 3519548,,,,,
1, ENGENG.REF,,,, 1996-06-09, !DECOMPRESS,, OLDER, !READONLY,,,,,, 3197871,,,,,
[SAMPLE4]
1, PHRASE.IDX,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 1263622,,,,,
1, PHRASE.DIC,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 1468204,,,,,
1, PHRASE.REF,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 1310544,,,,,
[SAMPLE5]
1, COMPUT.IDX,,,, 1996-05-19, !DECOMPRESS,, OLDER, !READONLY,,,,,, 1143814,,,,,
1, COMPUT.DIC,,,, 1996-05-19, !DECOMPRESS,, OLDER, !READONLY,,,,,, 4885837,,,,,
1, COMPUT.REF,,,, 1996-05-19, !DECOMPRESS,, OLDER, !READONLY,,,,,, 1430757,,,,,
[SAMPLE6]
1, SPEECH.DAT,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 100679208,,,,,
1, SPEECH.IDX,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 376838,,,,,
1, SPEECH.REF,,,, 1996-07-20, !DECOMPRESS,, OLDER, !READONLY,,,,,, 649971,,,,,
노트패드로 SETUP.INF 파일을 불러오면 처음에 나타나는 섹션은 디스켓 버전의 1번 디스크에 WINDIC.EXE가 있어야 하고, 설치하는 동안 나타날 메시지를 정해준 것이다. CD 버전에서는 이 부분은 상관없다.
[Source Media Descriptions]
"1", "Copying WinDic Files...", "WINDIC.EXE", "."
[Default File Settings]은 셋업 SDK 런타임 파일에 대한 것이므로 역시 건들지 않는다.
[WINSYS]
1, ctl3d.dll,,,, 1996-08-01,!DECOMPRESS,, OLDER, !READONLY,,, ROOT,,, 21008,,,,,
윈도 95 시스템 디렉토리에 넣어야 할 파일들은 여기에 적어준다. 예제는 CTL3D.DLL을 윈도의 \SYSTEM 디렉토리로 카피해 넣으라는 것이다.
콤머로 구분된 가장 끝부분에는 1.0.0.0처럼 버전 정보가 들어가는데, 없어도 상관은 없다. CTL3D.DLL의 크기는 21008 바이트이며, !DECOMPRESS는 압축되어 있지 않은 파일을 그대로 하드디스크로 복사하여 설치하는 것이다.
CTL3D.DLL의 날짜인 1996-08-01은 버전 정보가 없을때 이미 시스템에 설치된 파일과 버전 크기를 비교하기 위한 자료이다. CTL3D.DLL은 알려진 바로는 특이하게 버전 비교에 파일 이름을 사용한다.
CTL3D보단 CTL3DV2가 높은 버전이며, CTL3D32는 32비트 버전으로 인식한다는 것이다. 파일용량은 도스 커맨드라인에서 DIR 명령으로 나타난 파일 정보를 저장해서 활용하면 된다.
[APPFILES]
1, windic.exe,,,, 1996-07-26, !DECOMPRESS,, OLDER, !READONLY,,,,,, 565248,,,,,
MSCUISTF.DLL에서 6200번 대화상자의 "WinDic 3.0 System Files" 체크버튼을 눌렀을 때는 [APPFILES] 섹션의 모든 파일들의 크기를 조사해 오른쪽 옆에 합산한 용량을 표시해주고, 다른 체크 버튼들도 눌려지면 섹션내에 등록한 파일들의 크기를 모두 더해서 아래쪽의 system Required 파트에 출력해준다.
먼저 설치한 파일이 C:\WINDIC에 WINDIC.EXE라는 이름으로 존재하고 있을때, 신버전을 컴파일해서 파일 크기가 16KB가 늘어났다면 어떤 일이 벌어질까?
[Set Location]에서 디폴트 디렉토리로 C:\WINDIC이 정해져 있다면 똑같은 디렉토리에 두번째 설치할 때 문제가 생긴다.
분산환경을 지원하기 때문에 셋업 SDK가 체크박스가 클릭된 각 섹션의 파일들이 정해준 디렉토리에 존재하는지 검사하도록 되어있다.
셋업 정보에 있는 WINDIC.EXE는 크기가 16KB 차이가 나기 때문에 오히려 (-16KB)라고 음수값이 발생한다. 셋업을 만드는 도중 이런일은 비일비재하다.
그러므로 아직 셋업을 전부 해결한 것은 아니다. 설치 스크립트인 SETUP.MST 파일이 남았다. 스크립트 설치 언어를 사용해 만들어져 있으며, 문법은 베이직과 아주 비슷하다.
카페 게시글
강좌 / 잡지연재
분산설치용 SETUP_SDK 해킹(4)
타이거팀
추천 0
조회 132
02.07.15 16:49
댓글 0
북마크
번역하기
공유하기
기능 더보기
다음검색