home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* 2Do Setup '************************************************************************** '$DEFINE DEBUGX ''Define for script development/debugging '$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 PATHHELP = 1000 CONST BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 GLOBAL SETUPCAPTION$ ''The title for the bar GLOBAL DEST$ ''Default destination directory. GLOBAL WINDIR$ ''Current Windows directory GLOBAL WINSYSDIR$ ''Current Windows\System directory DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION WinExec LIB "kernel" (szCmdLine$, fuShow%) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SETUPCAPTION$ = "2Do Setup" SetBitmap CUIDLL$, LOGO SetTitle SETUPCAPTION$ SetAbout SETUPCAPTION$, "Copyright 1993 William P. Anderson" i% = SetBeepingMode(1) szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "2DO.INF" END IF ReadInfFile szInf$ OPTCUR$ = "1" DEST$ = "C:\2DO" i% = SetSizeCheckMode(scmOff) '' could use scmIgnore; def = scmOnFatal '$IFDEF DEBUG WinDrive$ = MID$(GetWindowsDir, 1, 1) IF IsDriveValid(WinDrive$) = 0 THEN i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "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", PATHHELP, HELPPROC$) DEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF DoesDirExist(DEST$) = 0 THEN i% = DoMsgBox(DEST$+" does not exist. Do you want to create it?", SETUPCAPTION$, MB_TASKMODAL+MB_ICONQUESTION+MB_YESNO) IF i% = IDNO THEN GOTO GETPATHL1 END IF END IF 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 WELCOME 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 IF dlg% = EXITSUCCESS THEN IF sz$ = "CONTINUE" THEN sz$ = "notepad.exe "+DEST$+"\intro.txt" '$IFDEF DEBUG i% = DoMsgBox(sz$, "Exec Text", MB_OK) '$ENDIF IF WinExec(sz$, 1) < 32 THEN i% = DoMsgBox("Introduction could not be displayed. Open the introduction from the Program Manger", SETUPCAPTION$, MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION) END IF END IF ENDIF END ERRQUIT: i% = DoMsgBox("The setup files are corrupted. You will need to get a replacment.", SETUPCAPTION$, 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 WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir DEST$, cmoNone ' OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0 ' WriteToLogFile "" ' WriteToLogFile " User chose as destination directory: '" + DEST$ + "'" ' WriteToLogFile " User chose option: '" + OPTCUR$ + "'" ' WriteToLogFile "" ' WriteToLogFile "May have had to create the directory: " + DEST$ ' WriteToLogFile "" AddSectionFilesToCopyList "Files", SrcDir$, DEST$ AddSectionFilesToCopyList "WinFiles", SrcDir$, WinDir$ AddSectionFilesToCopyList "SysFiles", SrcDir$, WinSysDir$ CopyFilesInCopyList CreateProgmanGroup "2Do", "", cmoNone ShowProgmanGroup "2Do", 1, cmoNone CreateProgmanItem "2Do", "2Do", DEST$+"\2do.exe", "", cmoOverwrite CreateProgmanItem "2Do", "Introduction", DEST$+"\intro.txt", "", cmoOverwrite AddDos5Help "2DO", "A personal task manager for Microsoft Windows.", cmoNone CloseLogFile 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