'************************************************************************** '* CCM Setup Script for Version 2.8.6 '************************************************************************** '$DEFINE DEBUG ''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 BADPATH = 6400 CONST CDALREADYUSED = 7100 CONST CDBADFILE = 7200 CONST SW_SHOWMAXIMIZED=3 ''Bitmap ID CONST LOGO = 1 GLOBAL DEST$ ''Default destination directory. GLOBAL OPTCUR$ ''Option selection from option dialog. GLOBAL Grp% GLOBAL C3D% DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER INIT: hWnd%=HwndFrame() junk%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED) CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SetBitmap CUIDLL$, LOGO SetTitle "Connect Monitor Version 2.8.6 Setup" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "ccm.INF" END IF ReadInfFile szInf$ OPTCUR$ = "1" DEST$ = "C:\CCM20" '$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 drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK) GOTO QUIT END IF '$ENDIF ''DEBUG '***************************************************************************** '* Display the Main Startup Dialog '***************************************************************************** WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF '***************************************************************************** '* Get the installation Destination path '***************************************************************************** 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 WELCOME ELSE GOSUB ASKQUIT GOTO GETPATH END IF '***************************************************************************** '* Ask Whether To Create A Program Group Or Not '***************************************************************************** sz$ = UIStartDlg(CUIDLL$, CDALREADYUSED, "FInfo0DlgProc", 0, "") UIPop 1 if sz$ = "CONTINUE" then Grp%=1 else Grp%=0 end if '***************************************************************************** '* Ask Whether To Update CTL3DV2.DLL '***************************************************************************** sz$ = UIStartDlg(CUIDLL$, CDBADFILE, "FInfo0DlgProc", 0, "") UIPop 1 if sz$ = "CONTINUE" then C3D%=1 else C3D%=0 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("Setup sources were corrupted!", "Setup Message", MB_OK) 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 '***************************************************************************** '* MaIn INSTALL Routine '***************************************************************************** SUB Install STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") SystemDir$ = GetWindowsSysDir() CreateDir DEST$, cmoNone AddSectionFilesToCopyList "Normal", SrcDir$, DEST$ CopyFilesInCopyList if C3D% = 1 then AddSectionFilesToCopyList "Shared", SrcDir$, SystemDir$ CopyFilesInCopyList End if if Grp% = 1 Then CreateProgmanGroup "Connect Monitor", "", cmoNone ShowProgmanGroup "Connect Monitor", 1, cmoNone CreateProgmanItem "Connect Monitor", "Connect Monitor V2.8.6", MakePath(DEST$,"ccm20.exe"), "", cmoOverwrite CreateProgmanItem "Connect Monitor", "CCM20 Help", "winhelp "+MakePath(DEST$,"ccm20.hlp"), "", cmoOverwrite CreateProgmanItem "Connect Monitor", "CCM20 Readme", "write "+MakePath(DEST$,"readme.wri"), "", cmoOverwrite CreateProgmanItem "Connect Monitor", "CCM20 Survey", "notepad "+MakePath(DEST$,"survey.txt"), "", cmoOverwrite end if 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