home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* Craftsman Software Install Tool '************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' 'Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST OPTIONS = 800 CONST APPHELP = 900 CONST BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 GLOBAL DEST$ ''Default destination directory. GLOBAL WINDIR$ ''Windows drive letter. GLOBAL WINSYSDIR$ GLOBAL OPTCUR$ ''Option selection from option dialog. DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SetBitmap CUIDLL$, LOGO SetTitle "º┌¬║░╩¬½ñ²░Ω╕╒¬▒¬⌐" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "ZOO.INF" END IF ReadInfFile szInf$ OPTCUR$ = "1" DEST$ = "C:\CRAFTS.MAN" WINDIR$ = GetWindowsDir() WINSYSDIR$ = GetWindowsSysDir() '$IFDEF DEBUG i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal WinDrive$ = MID$(GetWindowsDir, 1, 1) IF IsDriveValid(WinDrive$) = 0 THEN i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid driver.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK) GOTO QUIT END IF '$ENDIF ''DEBUG WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF OPTION: SetSymbolValue "RadioDefault", OPTCUR$ OPTL1: sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$) OPTCUR$ = GetSymbolValue("ButtonChecked") IF sz$ = "CONTINUE" THEN UIPop(1) ELSEIF sz$ = "REACTIVATE" THEN GOTO OPTL1 ELSE GOSUB ASKQUIT GOTO OPTION END IF GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) DEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(DEST$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO OPTION ELSE GOSUB ASKQUIT GOTO GETPATH END IF Install QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: i% = DoMsgBox("There are some defects when install the Formosa Zoo II on CD-ROM, Please Call (02)7012128!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir DEST$, cmoNone IF SrcDir$ = "D:\DEMO\ZOO\" THEN CDROM$="D" ELSEIF SrcDir$ = "E:\DEMO\ZOO\" THEN CDROM$="E" ELSEIF SrcDir$ = "F:\DEMO\ZOO\" THEN CDROM$="F" ELSEIF SrcDir$ = "G:\DEMO\ZOO\" THEN CDROM$="G" ELSEIF SrcDir$ = "H:\DEMO\ZOO\" THEN CDROM$="H" ELSEIF SrcDir$ = "I:\DEMO\ZOO\" THEN CDROM$="I" ELSEIF SrcDir$ = "J:\DEMO\ZOO\" THEN CDROM$="J" ELSEIF SrcDir$ = "K:\DEMO\ZOO\" THEN CDROM$="K" ELSEIF SrcDir$ = "L:\DEMO\ZOO\" THEN CDROM$="L" ELSE CDROM$="M" END IF IF OPTCUR$="1" THEN AddSectionFilesToCopyList "ZooFiles", SrcDir$+"crafts\", DEST$ End IF AddSectionFilesToCopyList "Files", SrcDir$+"crafts\", DEST$ CopyFilesInCopyList CreateIniKeyValue WINDIR$+"MTB30.INI", "Cache Files", "KINGDOM2.EXE", DEST$+"\KINGDOM2.TBC", cmoOverwrite CreateIniKeyValue "WIN.INI", "ZOO", "CDROM", CDROM$, cmoOverwrite CreateIniKeyValue "WIN.INI", "ZOO", "NoCDROM", "", cmoOverwrite CreateIniKeyValue "WIN.INI", "ZOO", "PlayMedia", "MIDI", cmoOverwrite CreateIniKeyValue "WIN.INI", "ZOO", "NoSoundCard", "", cmoOverwrite CreateIniKeyValue "WIN.INI", "ZOO", "PATH", DEST$, cmoOverwrite CreateIniKeyValue "WIN.INI", "ZOO", "TopDir", CDROM$ + ":\DEMO\ZOO" , cmoOverwrite CreateProgmanGroup "CRAFTSMAN", "", cmoNone ShowProgmanGroup "CRAFTSMAN", 1, cmoNone IF OPTCUR$="1" THEN CreateProgmanItem "CRAFTSMAN", "º┌¬║░╩¬½ñ²░Ω╕╒¬▒¬⌐", DEST$+"\KINGDOM2.EXE", DEST$+"\KINGDOM.ICO", cmoOverwrite ELSE CreateProgmanItem "CRAFTSMAN", "º┌¬║░╩¬½ñ²░Ω╕╒¬▒¬⌐", SrcDir$+"CRAFTS\KINGDOM2.EXE", DEST$+"\KINGDOM.ICO", cmoOverwrite END IF CreateProgmanItem "CRAFTSMAN", "¿╧Ñ╬ñΓÑU", SrcDir$+"README.WRI","", cmoOverwrite END SUB '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION