home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Edusex
/
Edusex.iso
/
setup.mst
< prev
next >
Wrap
Text File
|
1995-07-19
|
17KB
|
512 lines
'**************************************************************************
'* 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