인스톨쉴드를 디컴파일한 Gantt/OCX 1.10 패치 (2)
/////////////////////// 내용 계속
*------------------------------------------------------------------------*/
function SetupScreen()
number nDx, nDy;
begin
GetExtents( nDx, nDy );
Enable( FULLWINDOWMODE );
Enable( INDVFILESTATUS );
Enable( BITMAP256COLORS );
Enable( DIALOGCACHE );
SetTitle( "Installing " + APP_NAME, 24, WHITE );
SetColor( BACKGROUND, BK_BLUE ); // Dark blue.
SetColor( STATUSBAR, BLUE ); // Bright blue.
SetTitle( "Setup", 0, BACKGROUNDCAPTION ); // Caption bar text.
Enable( BACKGROUND );
Delay( 1 );
end;
/*---------------------------------------------------------------------*
*
* Function: CheckRequirements
* Purpose: This function will check all minimum requirements for the
* application being installed. If any fail, then the user
* is informed and the installation is terminated.
* Input:
* Returns:
* Comments:
\*----------------------------------------------------------------------*/
function CheckRequirements()
number nvDx, nvDy;
number nvVersion;
STRING szResult;
begin
// Check screen resolution.
GetExtents( nvDx, nvDy );
if (nvDy < 480) then
MessageBox( "This program requires VGA or better resolution.", WARNING );
exit;
endif;
end;
인스톨쉴드 디컴파일러로 프리필드에 의해 패치된 setup.ins 파일을 읽어들이면
다음과 같은 파일 내용을 화면에 생성해냅니다.
소스코드랑 비교해보면 대강 어떻게 돌아가나 감이 잡히시죠?
아래는 인스톨쉴드 디컴파일러를 다운받을수 있는 사이트입니다.
http://www.bismark.it/categoria/tools/
000001CB: 0002 Disable (0000000C)
000001D2: 0146 InstallationInfo ("Free Field Inc.","GanttOCX","1.1","myapp.exe")
00000203: 00B5 Call Function_0000_[LABEL_000F] ()
0000020B: 0001 Enable (00000036)
REF: 000002A7
|
00000216: 0002 Disable (00000032)
0000021D: 0144 Welcome ("",00000000)
00000227: 0001 Enable (00000032)
0000022E: 00B5 Call Function_0001_[LABEL_0010] ()
REF: 000003D7
|
0000023A: 0125 StrVar[0017] = TARGETDISK ^ "Program Files\Free Field\GanttOCX\"
00000287: 0128 IF (AskDestPath ("","",StrVar[0017],00000000) = 0000000C) THEN
000002A7: 002C Goto (LABEL_0001)
000002A8: 0000 ENDIF
000002B4: 0021 NumVar[0006] = 00000001
000002CB: 0128 IF (GetDiskSpace (StrVar[0017]) < 000186A0) THEN
000002EB: 0124 Sprintf (StrVar[001A],"There is not enough space available on the disk","'")
00000327: 0124 StrVar[001B] = StrVar[001A] + StrVar[0017]
00000332: 0124 StrVar[001C] = StrVar[001B] + "' "
00000340: 0124 StrVar[001D] = StrVar[001C] + "Please free up some space or change the target location"
00000383: 0124 StrVar[0013] = StrVar[001D] + "to a different disk"
000003A9: 002A MessageBox (StrVar[0013],WARNING)
000003B3: 0021 NumVar[0006] = 00000000
000003B4: 0000 ENDIF
000003D7: 0022 IF (NumVar[0006] = 00000000) THEN GOTO LABEL_0002
000003E9: 0002 Disable (00000036)
000003F0: 0013 StrVar[0014] = "General"
000003FF: 0013 TARGETDIR = StrVar[0017]
00000407: 00D2 FileSetBeginDefine (StrVar[0014])
0000040C: 0008 SetStatusWindow (FFFFFFFF,"Copying program files...")
0000042E: 00C1 CompressGet ("DATA.Z","*.*",01000000)
00000444: 00D3 FileSetEndDefine (StrVar[0014])
0000044D: 0145 DeinstallStart (StrVar[0017],StrVar[0016],"SampleDeinstKey",00000000)
0000046C: 0147 RegDBSetItem (00000003,"GanttOCX")
0000047E: 0002 Disable (00000036)
00000485: 0001 Enable (0000003A)
0000048C: 0064 StatusUpdate (00000001,0000005A)
00000498: 0008 SetStatusWindow (00000000,"Copying program files...")
000004BA: 013F NumVar[0007] = FileSetPerformEz (StrVar[0014],00000000)
000004D4: 0129 SWITCH (NumVar[0007])
000004D6: 0022 CASE (00000001)
000004ED: 0022 CASE (FFFFFFE5)
000004FB: 0124 Sprintf (StrVar[001A],"Unable to create a directory under ",TARGETDIR)
00000529: 0124 StrVar[001B] = StrVar[001A] + "."
00000535: 0124 StrVar[001C] = StrVar[001B] + "Please check write access to this directory."
0000056C: 002A MessageBox (StrVar[001C],SEVERE)
00000576: 002B Exit ()
00000581: 006E NumToStr (StrVar[0019],NumVar[0007])
00000589: 0124 Sprintf (StrVar[001A],"General file transfer error.","Please check your target location and try again.")
000005E0: 0124 StrVar[001B] = StrVar[001A] + " Error Number:"
000005FB: 0124 StrVar[001C] = StrVar[001B] + StrVar[0019]
00000606: 0124 StrVar[001D] = StrVar[001C] + " Related File: "
00000621: 0124 StrVar[001E] = StrVar[001D] + ERRORFILENAME
0000062C: 002A MessageBox (StrVar[001E],SEVERE)
00000636: 002B Exit ()
00000637: 0000 ENDSWITSH
00000640: 0002 Disable (0000003A)
0000064B: 0008 SetStatusWindow (0000005F,"Creating Program Group and Icons....")
00000679: 0081 AppCommand (00000064,00000003)
00000685: 0013 StrVar[0011] = "GanttOCX"
00000695: 013C CreateProgramFolder (StrVar[0011])
0000069A: 000A Delay (00000001)
000006A1: 0125 StrVar[0018] = StrVar[0017] ^ "README\README.WRI"
000006C5: 014E ShowProgramFolder (StrVar[0011],00000005)
000006CF: 0125 StrVar[001A] = StrVar[0017] ^ "Readme"
000006E0: 013A AddFolderIcon (StrVar[0011],"Gantt/OCX",StrVar[0018],StrVar[001A],"",00000000,"",00000002)
00000707: 0125 StrVar[001A] = StrVar[0017] ^ "SAMPLES\SAMPLE1\SAMPLE1.VBP"
0000072D: 0125 StrVar[001B] = StrVar[0017] ^ "SAMPLES\SAMPLE1"
00000747: 013A AddFolderIcon (StrVar[0011],"Sample1",StrVar[001A],StrVar[001B],"",00000000,"",00000002)
0000076C: 0125 StrVar[001A] = StrVar[0017] ^ "SAMPLES\SAMPLE2\SAMPLE2.VBP"
00000792: 0125 StrVar[001B] = StrVar[0017] ^ "SAMPLES\SAMPLE2"
000007AC: 013A AddFolderIcon (StrVar[0011],"Sample2",StrVar[001A],StrVar[001B],"",00000000,"",00000002)
000007D1: 0125 StrVar[001A] = StrVar[0017] ^ "SAMPLES\SAMPLE3\SAMPLE3.VBP"
000007F7: 0125 StrVar[001B] = StrVar[0017] ^ "SAMPLES\SAMPLE3"
00000811: 013A AddFolderIcon (StrVar[0011],"Sample3",StrVar[001A],StrVar[001B],"",00000000,"",00000002)
00000836: 0125 StrVar[001A] = StrVar[0017] ^ "SAMPLES\SAMPLE4\SAMPLE4.VBP"
0000085C: 0125 StrVar[001B] = StrVar[0017] ^ "SAMPLES\SAMPLE4"
00000876: 013A AddFolderIcon (StrVar[0011],"Sample4",StrVar[001A],StrVar[001B],"",00000000,"",00000002)
0000089B: 0125 StrVar[001A] = StrVar[0017] ^ "SAMPLES\SAMPLE5\SAMPLE5.VBP"
000008C1: 0125 StrVar[001B] = StrVar[0017] ^ "SAMPLES\SAMPLE5"
000008DB: 013A AddFolderIcon (StrVar[0011],"Sample5",StrVar[001A],StrVar[001B],"",00000000,"",00000002)
00000900: 000A Delay (00000001)
00000907: 0125 StrVar[001A] = StrVar[0017] ^ "Ocx\ganttocx.ocx"
00000922: 0124 Sprintf (StrVar[001B],"/s ",StrVar[001A])
00000930: 0033 LaunchApp ("REGSVR32.EXE",StrVar[001B])
00000944: 0013 StrVar[0018] = UNINST
0000094C: 0124 StrVar[001A] = StrVar[0018] + " -f"
0000095A: 0124 StrVar[0018] = StrVar[001A] + StrVar[0016]
0000096D: 013A AddFolderIcon (StrVar[0011],"unInstallSHIELD",StrVar[0018],WINDIR,"",00000000,"",00000002)
0000099A: 000A Delay (00000001)
000009A5: 0008 SetStatusWindow (00000064,"Installation complete.")
000009C5: 0124 Sprintf (StrVar[001A],"Setup is complete. You may run the installed program ","by double-clicking on the program icon installed.")
00000A37: 0013 StrVar[0013] = StrVar[001A]
00000A3F: 002A MessageBox (StrVar[0013],INFORMATION)
00000A49: 002B Exit ()
카페 게시글
강좌 / 잡지연재
인스톨쉴드를 디컴파일한 Gantt/OCX 1.10 패치 (2)
타이거팀
추천 0
조회 223
02.07.15 16:37
댓글 0
북마크
번역하기
공유하기
기능 더보기
다음검색