home *** CD-ROM | disk | FTP | other *** search
- '**************************************************************************
- '* MSSetup EDUSEX
- '**************************************************************************
-
- '$DEFINE DEBUG ''Define for script development/debugging
-
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
- '$INCLUDE 'setst.inc'
-
- ''Dialog ID's
- CONST ASKQUIT = 200
- CONST DESTPATH = 300
- CONST EXITFAILURE = 400
- CONST EXITQUIT = 600
- CONST EXITSUCCESS = 700
- CONST OPTIONS = 800
- CONST APPHELP = 900
- CONST RESTART = 2600
- CONST RESTARTII = 2700
- CONST CUSTINST = 6200
- CONST TELEINST = 6250
- CONST TOOBIG = 6300
- CONST BADPATH = 6400
-
- ''Bitmap ID
- CONST LOGO = 1
-
- ''File Types
- CONST APPFILES = 1
- CONST OPTFILES1 = 2
- CONST OPTFILES2 = 3
-
- GLOBAL SRCDIR$
- GLOBAL DEST$ ''Default destination directory.
- GLOBAL WINDRIVE$ ''Windows drive letter.
- GLOBAL WINDIR$
- GLOBAL WINSYSDIR$
- GLOBAL TBKDIR$
- GLOBAL DEFDIR$
-
- GLOBAL NEEDET&
- GLOBAL DRVSPACE&
- GLOBAL tb15Path$
-
- ''***************************************************
- '' Driver AVI
- CONST ADDVFW = 1
- GLOBAL VFWPATH$
- ''***************************************************
-
- ''CustInst list symbol names
-
- ''Dialog list symbol names
- GLOBAL CHECKSTATES$
- GLOBAL STATUSTEXT$
- GLOBAL DRIVETEXT$
-
- DECLARE SUB BuildCopyList
- DECLARE SUB CalculateCopyList
- DECLARE SUB SetDriveStatus
- DECLARE SUB RegisterEntries
- DECLARE SUB CreateIniEntries
- DECLARE SUB lancioAppl
- DECLARE SUB SetupProgman
-
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
-
- DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
- DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
- DECLARE SUB Reboot LIB "iniupd.dll"
- DECLARE fUNCTION ExitWindowsExec LIB "User" (Exec$, Param$) AS INTEGER
-
- TRAP CleanupTrap From "MSSHLSTF.DLL"
-
- End Trap
- Inst% = HinstFrame()
- ii% = CreateCover(0, 0, 0, 0, 0)
- ret% = Ctl3dRegister(Inst%)
- ret% = Ctl3dAutoSubClass(Inst%)
- hSetup = InitSetup(COMMAND$)
- hWnd% = HwndFrame()
- ret% = SubSetMainWin(hWnd%)
- ii% = CloseCover()
-
- WIN32ENABLED% = 0
- MajorVer% = GetWindowsMajorVersion()
- MinorVer% = GetWindowsMinorVersion()
- ''*******************************************************
- '' CHECK VERSIONE WINDOWS
- ''*******************************************************
- IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
- i% = DoMsgBox("Edusex richiede Microsoft Windows version 3.10 o successiva.", "Installazione di Edusex", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
- END IF
-
- ''*******************************************************
- '' CHECK SCHEDA GRAFICA
- ''*******************************************************
- '' IF DeviceColor() <= 16 THEN
- '' ii% = DoMsgBox("Edusex requires 256 colors", "Hardware", MB_OK)
- '' GOTO QUIT
- '' END IF
-
- ON ERROR GOTO QUIT
-
- INIT:
- CUIDLL$ = "mscuistf.dll" ''custom user interface dll
- HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
- SetTitle "Installazione di Edusex"
-
- ''*******************************************************
- '' DICHIARAZIONE DEI PATH
- VFWPATH$ = "VFW\"
- TBKDIR$ = "MTB30RT\"
- DEFDIR$ = "EDUSEX\"
- ''*******************************************************
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
- END IF
-
- ReadInfFile szInf$
-
- WINDRIVE$ = UCASE$(MID$(GetWindowsDir, 1, 1))
- DEST$ = WINDRIVE$ + ":\EDUSEX"
- WINDIR$ = GetWindowsDir()
- WINSYSDIR$ = GetWindowsSysDir()
-
- ''CustInst list symbols
- CHECKSTATES$ = "CheckItemsState"
- STATUSTEXT$ = "StatusItemsText"
- DRIVETEXT$ = "DriveStatusText"
-
- tb15pathTMP$ = GetIniKeyString(WinDir$ + "WIN.INI", "Extensions", "tbk")
- If tb15pathTMP$ <> "" then
- tmp$ = ucase$(tb15pathTMP$)
- IF InStr(1,tmp$,"TBOOK.EXE ") then
- Laenge% = Len(tb15pathTMP$)
- tb15path$ = Mid$(tb15pathTMP$,1,laenge%-6)
- END IF
- END IF
-
- FOR i% = 1 TO 3 STEP 1
- AddListItem CHECKSTATES$, ""
- NEXT i%
-
- FOR i% = 1 TO 3 STEP 1
- AddListItem STATUSTEXT$, ""
- NEXT i%
-
- FOR i% = 1 TO 3 STEP 1
- AddListItem DRIVETEXT$, ""
- NEXT i%
-
- ReplaceListItem DRIVETEXT$, 2, DEST$
- ReplaceListItem CHECKSTATES$, 1, "ON"
-
- ''File Option Variables
-
- '' Driver, OptLists
-
- SetDriveStatus
-
- CUSTINST:
- sz$ = UIStartDlg(CUIDLL$, TELEINST, "FTeleInstDlgProc", APPHELP, HELPPROC$)
-
- IF sz$ = "CONTINUE" THEN
- ''Install only if it will fit.
- BuildCopyList
- CalculateCopyList
- IF NEEDET& <> 0 THEN
- GOSUB TOOBIG
- GOTO CUSTINST
- END IF
- UIPop 1
- GOTO INSTALL
- ELSEIF sz$ = "PATH" THEN
- GOTO GETPATH
- ELSEIF sz$ = "CHK1" THEN
- GOTO CUSTINST
- ELSEIF sz$ = "CHK2" THEN
- GOTO CUSTINST
- '' ELSEIF sz$ = "CHK3" THEN
- '' GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- SetDriveStatus
- GOTO CUSTINST
- ELSE
- GOSUB ASKQUIT
- GOTO CUSTINST
- END IF
-
- INSTALL:
- CreateDir DEST$, cmoNone
- BuildCopyList
- SetRestartDir WinDir$
- CopyFilesInCopyList
- CreateIniEntries
- RegisterEntries
- lancioAppl
- SetupProgman
-
- '' lancio programma
- ''@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- SRCDIR$ = GetSymbolValue("STF_SRCDIR")
- '' TBSRC$ = MakePath(SRCDIR$, TBKDIR$)
-
- '' Run ( MakePath (TBSRC$, "mtb30run.exe ") + MakePath (TBSRC$, "passwd.tbk"))
- '' Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
-
- RESTRT% = RestartListEmpty ()
- Exe$ = DEST$ + "\_msrstrt.exe"
- Batch$ = DEST$ + "\_mssetup.bat"
- empty$ = ""
- RESTART:
- IF RESTRT% = 0 THEN
- sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO RESTART
- ENDIF
- I% = ExitExecRestart ()
- RemoveFile Exe$, cmoForce
- RemoveFile Batch$, cmoForce
- END
- ELSE
- sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
- IF sz$ = "CONTINUE" THEN
- I% = ExitWindowsExec (Exe$, empty$)
- IF I% = 0 THEN
- GOTO RESTART
- ELSE
- END
- ENDIF
- ELSEIF sz$ = "EXIT" THEN
- UIPopAll
- END
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO RESTART
- ELSE
- UIPop 1
- END IF
- END IF
-
-
- QUIT:
- ''ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- dlg% = EXITSUCCESS
- ELSEIF ERR = STFQUIT THEN
- dlg% = EXITQUIT
- ELSE
- dlg% = EXITQUIT ''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 non completato!", "Messaggio di Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
-
- GETPATH:
- SetSymbolValue "EditTextIn", DEST$
- SetSymbolValue "EditFocus", "END"
- GETPATHL1:
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
-
- IF sz$ = "CONTINUE" THEN
- olddest$ = DEST$
- DEST$ = GetSymbolValue("EditTextOut")
-
- ''Validate new path.
- IF IsDirWritable(DEST$) = 0 THEN
- GOSUB BADPATH
- GOTO GETPATHL1
- END IF
- UIPop 1
-
- ''Truncate display if too long.
- IF LEN(DEST$) > 23 THEN
- ReplaceListItem DRIVETEXT$, 2, MID$(DEST$, 1, 23)+"..."
- ELSE
- ReplaceListItem DRIVETEXT$, 2, DEST$
- END IF
-
- ''Recalc if path changed.
- IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
- SetDriveStatus
- END IF
-
- olddest$ = ""
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- SetDriveStatus
- GOTO GETPATHL1
- ELSEIF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO GETPATHL1
- ELSE
- UIPop 1
- GOTO CUSTINST
- END IF
-
-
-
- TOOBIG:
- sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- SetDriveStatus
- GOTO TOOBIG
- END IF
- UIPop 1
- RETURN
-
-
-
- BADPATH:
- sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- SetDriveStatus
- 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
-
- SUB CalculateCopyList STATIC
- NEEDET& = GetCopyListCost("", "", "")
- END SUB
-
- SUB SetupProgman STATIC
- '' Todo Add Progman Commands
-
- CreateProgmanGroup "GMM", "", cmoOverwrite
- ShowProgmanGroup "GMM", 1, cmoNone
-
- IF GetListItem(CHECKSTATES$, 1) = "ON" THEN
- CreateProgmanItem "GMM", "Edusex", MakePath(WinDir$,"asym\runtime\tbload.exe")+" "+MakePath(SRCDIR$,"edusex\start.TBK"), MakePath(DEST$, "edx.ico")+",,,,"+MakePath(SRCDIR$,"edusex") , cmoOverwrite
- CreateProgmanItem "GMM", "Uninstall", MakePath(SRCDIR$,"MTB30RT\tbload.exe")+" "+MakePath(SRCDIR$,"remove.exe"), MakePath(SRCDIR$, "edusex\edxrem.ico")+",,,,"+SRCDIR$ , cmoOverwrite
- ELSEIF GetListItem(CHECKSTATES$, 2) = "ON" THEN
- CreateProgmanItem "GMM", "Edusex", MakePath(WinDir$,"asym\runtime\tbload.exe")+" "+MakePath(DEST$,"start.TBK"), MakePath(DEST$, "edx.ico")+",,,,"+ DEST$ , cmoOverwrite
- CreateProgmanItem "GMM", "Uninstall", MakePath(SRCDIR$,"MTB30RT\tbload.exe")+" "+MakePath(SRCDIR$,"remove.exe"), MakePath(SRCDIR$, "edusex\edxrem.ico")+",,,,"+SRCDIR$ , cmoOverwrite
- END IF
-
- END SUB
-
- SUB lancioAppl STATIC
-
- TBSRC$ = MakePath(SRCDIR$, TBKDIR$)
-
- Run ( MakePath (TBSRC$, "mtb30run.exe ") + MakePath (TBSRC$, "passwd.tbk"))
-
- END SUB
-
-
- SUB BuildCopyList STATIC
-
- SRCDIR$ = GetSymbolValue("STF_SRCDIR")
- TBSRC$ = MakePath(SRCDIR$, TBKDIR$)
- DEFAULTSRC$ = MakePath(SRCDIR$, DEFDIR$)
- TBKDEST$ = MakePath(WINDIR$, "asym\runtime\")
-
- ClearCopyList
- AddSectionFilesToCopyList "DEFAULT", DEFAULTSRC$, DEST$
- AddSectionFilesToCopyList "TBK", TBSRC$, TBKDEST$
-
- IF GetListItem(CHECKSTATES$, 2) = "ON" THEN
- AddSectionFilesToCopyList "OPTION2",DEFAULTSRC$,DEST$
- END IF
-
- '' IF GetListItem(CHECKSTATES$, 1) = "ON" THEN
- '' '' Optional Files 1
- '' AddSectionFilesToCopyList "OPTION1", SRCDIR$, DEST$
- '' ELSEIF GetListItem(CHECKSTATES$, 2) = "ON" THEN
- '' '' Optional Files 2
- '' AddSectionFilesToCopyList "OPTION2", DEFAULTSRC$, DEST$
- '' END IF
-
- IF ADDVFW <> 0 THEN
- '' Video for Windows Files
- VFWSRC$= MakePath(SRCDIR$, VFWPATH$)
- AddSectionFilesToCopyList "remove", VFWSRC$, WINSYSDIR$
- AddSectionFilesToCopyList "VfW Runtime", VFWSRC$, WINSYSDIR$
- AddSectionFilesToCopyList "OLE2", VFWSRC$, WINSYSDIR$
- AddSectionFilesToCopyList "ACM Drivers", VFWSRC$, WINSYSDIR$
- AddSectionFilesToCopyList "MPlayer", VFWSRC$, WINDIR$
- AddSectionFilesToCopyList "AVICodecs", VFWSRC$, WINSYSDIR$
- END IF
- END SUB
-
-
- SUB CreateIniEntries STATIC
-
- '' Default Entries
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "start.tbk", DEST$+"\start.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "a.res", DEST$+"\a.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "b.res", DEST$+"\b.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "c.res", DEST$+"\c.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "d.res", DEST$+"\d.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "e.res", DEST$+"\e.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "f.res", DEST$+"\f.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "g.res", DEST$+"\g.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "h.res", DEST$+"\h.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "dictio.res", DEST$+"\dictio.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "credits.res", DEST$+"\credits.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "edx.sbk", DEST$+"\edx.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "index.res", DEST$+"\index.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "menu.res", DEST$+"\menu.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "overview.res", DEST$+"\overview.tbc", cmoOverwrite
- CreateIniKeyValue WinDir$ + "MTB30.INI","Cache files", "sigla.res", DEST$+"\sigla.tbc", cmoOverwrite
-
- CreateIniKeyValue WinDir$ + "WIN.INI","Extensions", "tbk", WinDir$+"asym\runtime\tbload.exe ^.tbk", cmoOverwrite
-
- CreateIniKeyValue WinDir$ + "WIN.INI","Edusexdir", "Edxdir", DEST$, cmoOverwrite
-
- CreateIniKeyValue WinDir$ + "asym.INI", "ToolBook Load Information", "MTB30", WinDir$+"asym\runtime\mtb30run.exe", cmoOverwrite
- If tb15Path$ <> "" then
- CreateIniKeyValue WinDir$ + "asym.INI", "ToolBook Load Information", "tb15", tb15path$, cmoOverwrite
- END IF
-
- '' IF GetListItem(CHECKSTATES$, 1) = "ON" THEN
- '' '' Optional Entries 1
- '' ELSEIF GetListItem(CHECKSTATES$, 2) = "ON" THEN
- '' '' Optional Entries 2
- '' END IF
-
- IF ADDVFW <> 0 THEN
- '' Video for Windows Entries
-
- IF VflatdPresent() = 0 THEN
- CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
- END IF
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "ir32.dll", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21.dll", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "iyvu9.dll", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
- CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
- CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
- CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "ir21.dll", "Intel Indeo(TM) Video R2.1", cmoOverwrite
- CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
- CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
- CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
-
- END IF
- END SUB
-
-
- SUB RegisterEntries STATIC
-
- '' Default Registers
-
- IF GetListItem(CHECKSTATES$, 2) = "ON" THEN
- '' Optional Entries 1
- END IF
-
- IF ADDVFW <> 0 THEN
- '' Video for Windows Entries
-
- Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
- Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
- Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
- END IF
- ''run "profdisp.exe"
- END SUB
-
- SUB SetDriveStatus STATIC
-
- free& = GetFreeSpaceForDrive(MID$(DEST$, 1, 1))
- ReplaceListItem DRIVETEXT$, 1, STR$(free& / 1024) + " K"
-
- END SUB
-
- 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
-
-