home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / demo / janbit / measure / disk1 / demorun.mst < prev    next >
Text File  |  1995-09-25  |  19KB  |  614 lines

  1. '' DEMORUN.MST
  2. '**************************************************************************
  3. '*                       DEMORUN Demo Product Setup
  4. '**************************************************************************
  5.  
  6. ''$DEFINE DEBUG     ''Define for script development/debugging
  7. ''$DEFINE DISKSIZE  ''Define if you want to check for disk space
  8.  
  9. '$INCLUDE 'defines.inc'
  10.  
  11. '$INCLUDE 'setupapi.inc'
  12. '$INCLUDE 'msdetect.inc'
  13.  
  14. ''Dialog ID's
  15. CONST WELCOME           = 100
  16. CONST ASKQUIT           = 200
  17. CONST DESTPATH          = 300
  18. CONST EXITFAILURE       = 400
  19. CONST EXITQUIT          = 600
  20. CONST EXITSUCCESS       = 700
  21. CONST OPTIONS           = 800
  22. CONST APPHELP           = 900
  23. CONST DRIVESELECT       = 1100
  24. CONST BADPATH           = 6400
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 1
  28.  
  29. GLOBAL DEST$            ''Default destination directory.
  30. GLOBAL OPTCUR$          ''Null for now
  31. GLOBAL WINDRIVE$        ''Used in size test
  32. GLOBAL WORKFILE$    ''Used in SHOWRUN.ZIP test
  33.  
  34. GLOBAL SrcDir$
  35. GLOBAL WinDir$
  36. GLOBAL WinSysDir$
  37. GLOBAL WINdirectory$
  38.  
  39. GLOBAL MajorVer%
  40. GLOBAL MinorVer%
  41. GLOBAL WinCheck95$
  42. GLOBAL HasWin95%
  43. GLOBAL WinCheckNT$
  44. GLOBAL HasWinNT%
  45.  
  46. GLOBAL NEWDEST$
  47. GLOBAL PRODUCT$
  48. GLOBAL VFW%             ''=1 if VFW Run Time previous install
  49. GLOBAL PRO%
  50. GLOBAL OKWRITE%
  51. GLOBAL OKWRITE1%
  52. GLOBAL OKWRITE2%
  53. GLOBAL OKWRITE3%
  54. GLOBAL Install_VFW%
  55. GLOBAL WIN_Sys_Write%
  56.  
  57. GLOBAL WantedDiskSize&  ''Used for disk size test
  58. GLOBAL WantedDataSize&  ''Used for disk size test frin INC file
  59.  
  60. DECLARE SUB Install
  61. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  62.  
  63. ''DECLARE FUNCTION DoProtect LIB "PROTECT.DLL" (szDisk$) AS INTEGER
  64.  
  65. INIT:
  66.     CUIDLL$   = "mscuistf.dll"              ''Custom user interface dll
  67.     HELPPROC$ = "FHelpDlgProc"      ''Help dialog procedure
  68.  
  69.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  70.     WinDir$ = GetWindowsDir()
  71.     WinSysDir$ = GetWindowsSysDir()
  72.     Install_VFW% = 1        ''default is to install VFW drivers
  73.     WIN_Sys_Write% = 1  ''default...can write to WIN SYS directory
  74.  
  75.     MajorVer% = GetWindowsMajorVersion()
  76.     MinorVer% = GetWindowsMinorVersion()
  77.  
  78.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  79.         i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  80.         END
  81.     END IF
  82.  
  83.     WinCheck95$ = WinSysDir$+"IOSUBSYS"
  84.     HasWin95% = DoesDirExist(WinCheck95$)
  85.     WinCheckNT$ = WinDir$+"SYSTEM32"
  86.     HasNT% = DoesDirExist(WinCheckNT$)
  87.  
  88. '$IFDEF DEMOQUICK
  89.     PRODUCT$ = "DEMOQUICK"
  90. '$ELSEIFDEF VHELP
  91.     PRODUCT$ = "VHELP"
  92. '$ELSEIFDEF PRODDE
  93.     PRODUCT$ = "PRODDE"
  94. '$ELSEIFDEF CBIQUICK
  95.     PRODUCT$ = "CBIQUICK"
  96. '$ELSEIFDEF CBIPRO
  97.     PRODUCT$ = "CBIPRO"
  98. '$ELSE
  99.     i% = DoMsgBox("Product type not defined.", "Define product", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  100.     END
  101. '$ENDIF
  102.  
  103.     WinSysDir$ = GetWindowsSysDir()               ''Avoid the OnWindowsNT() call due to extra space
  104.     IF (HasNT%) OR ((MajorVer% = 3) AND (MinorVer% = 95)) THEN
  105.         Install_VFW% = 0
  106.     END IF
  107.  
  108.     SetBitmap CUIDLL$, LOGO
  109.  
  110.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  111.         SetTitle "Demo/Tutorial Install ... Created with DEMOquick"
  112.     ELSE
  113.         SetTitle "Measure Tutorial Setup"
  114.     ENDIF
  115.  
  116.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  117.  
  118.     IF szInf$ = "" THEN
  119.         szInf$ = GetSymbolValue("STF_CWDDIR") + "DEMORUN.INF"
  120.     END IF
  121.  
  122.     ReadInfFile szInf$
  123.  
  124.     OPTCUR$ = "1"
  125.  
  126.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  127.         DEST$ = "C:\DEMORUN"
  128.     ELSE
  129.         DEST$ = "C:\MESRDEMO"
  130.     ENDIF
  131.  
  132. WELCOME:
  133.  
  134. GETPATH:
  135.     SetSymbolValue "EditTextIn", DEST$
  136.     SetSymbolValue "EditFocus", "END"
  137.  
  138. GETPATHL1:
  139.     sz$   = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  140.     DEST$ = GetSymbolValue("EditTextOut")
  141.  
  142.     SetRestartDir DEST$
  143.  
  144.     IF sz$ = "CONTINUE" THEN
  145.  
  146.         IF IsDirWritable(DEST$) = 0 THEN
  147.             GOSUB BADPATH
  148.             GOTO GETPATHL1
  149.         END IF
  150.         UIPop 1
  151.  
  152.     ELSEIF sz$ = "REACTIVATE" THEN
  153.         GOTO GETPATHL1
  154.     ELSEIF sz$ = "BACK" THEN
  155.         UIPop 1
  156.         GOTO WELCOME
  157.     ELSE
  158.         GOSUB ASKQUIT
  159.         GOTO WELCOME
  160.     END IF
  161.  
  162.     ''------------------------------------------------------------------
  163.  
  164.     OKWRITE%  = IsDirWritable(WinDir$)
  165.     OKWRITE1% = IsDirWritable(WinSysDir$)
  166.     OKWRITE2% = IsFileWritable(MakePath(WinDir$, "SYSTEM.INI"))
  167.     OKWRITE3% = IsFileWritable(MakePath(WinDir$, "WIN.INI"))
  168.     IF ((OKWRITE% <> 1) OR (OKWRITE1% <> 1) OR (OKWRITE2% <> 1) OR (OKWRITE3% <> 1)) THEN
  169.         i% = DoMsgBox("Can't access WINDOWS directory...VFW Video drivers will not be installed.  Continuing the install.", "Setup Will Continue...", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  170.         i% = DoMsgBox("Your system administrator will need to load Microsoft Video-For-Windows 1.1a drivers if not already present.", "Video-For-Windows Drivers", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  171.         Install_VFW% = 0    ''Don't install drivers
  172.         WIN_Sys_Write% = 0
  173.     ENDIF
  174.  
  175.  
  176.     Install
  177.  
  178.     ''------------------------------------------------------------------
  179.  
  180. QUIT:
  181.     ON ERROR GOTO ERRQUIT
  182.  
  183.     IF ERR = 0 THEN
  184.         dlg% = EXITSUCCESS
  185.     ELSEIF ERR = STFQUIT THEN
  186.         dlg% = EXITQUIT
  187.     ELSE
  188.         dlg% = EXITFAILURE
  189.     END IF
  190. QUITL1:
  191.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  192.     IF sz$ = "REACTIVATE" THEN
  193.     GOTO QUITL1
  194.     END IF
  195.     UIPop 1
  196.  
  197.     END
  198.  
  199. ERRQUIT:
  200.     i% = DoMsgBox("Problem with SEETUP files, call (508) 263-3030 !", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  201.     END
  202.  
  203.  
  204.  
  205. BADPATH:
  206.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  207.     IF sz$ = "REACTIVATE" THEN
  208.         GOTO BADPATH
  209.     END IF
  210.     UIPop 1
  211.     RETURN
  212.  
  213.  
  214.  
  215. ASKQUIT:
  216.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  217.  
  218.     IF sz$ = "EXIT" THEN
  219.     UIPopAll
  220.     ERROR STFQUIT
  221.     ELSEIF sz$ = "REACTIVATE" THEN
  222.     GOTO ASKQUIT
  223.     ELSE
  224.     UIPop 1
  225.     END IF
  226.     RETURN
  227.  
  228. '**********************************************************************
  229. '** Install
  230. '**
  231. '** Purpose:
  232. '**     Builds the copy list and performs all installation operations.
  233. '** Arguments:
  234. '**     none.
  235. '** Returns:
  236. '**     none.
  237. '*************************************************************************
  238. SUB Install STATIC
  239.  
  240.     ''Save a copy of previous menu (if present)------------------------
  241.     DEST_MNU$ = DEST$ + "\DEMORUN.MNU"
  242.     OLD_MNU$   = DEST$ + "\OLD.MNU"
  243.     i% = DoesFileExist(DEST_MNU$, femExists)
  244.  
  245.     IF i% = 1 THEN
  246.         CopyFile DEST_MNU$, OLD_MNU$, cmoNone, 0
  247.     END IF
  248.     
  249.     ''--------------------------------------------------------------------
  250.  
  251.     ''Check the disk space - TEST THIS ON NETWORK DRIVES-----------------
  252.     WINDRIVE$ = MID$(DEST$, 1, 1)
  253.     
  254.     ''Define a minimum default size
  255.     WantedDiskSize&=4000000
  256.  
  257.     ''Get the size from create disk
  258.     '$INCLUDE 'DEMOSIZE.INC'
  259.  
  260.     ''Add amount for software overhead
  261.     WantedDiskSize& = WantedDataSize& + 1600000
  262.  
  263.     DiskSize&=GetFreeSpaceForDrive(WINDRIVE$)
  264.  
  265.     IF WantedDiskSize& > DiskSize& THEN
  266.         i% = DoMsgBox("Not enough free disk space.  Please free some space and try again", "Insufficient Disk Space", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  267.         END
  268.     END IF
  269.     
  270.     ''-----------------------------------------------------------------------
  271.     
  272.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  273.     CreateDir DEST$, cmoNone
  274.  
  275.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  276.     WriteToLogFile ""
  277.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  278.     WriteToLogFile "  Installing DISK 1 to: '" + DEST$ + "'"
  279.     WriteToLogFile ""
  280.  
  281.     AddSectionFilesToCopyList "Files1", SrcDir$, DEST$
  282.     CopyFilesInCopyList
  283.     ClearCopyList
  284.  
  285.  
  286.     ''Add Video-For-Windows Run-Time files------------------------------
  287.     ''See if we can install VFW on system
  288.  
  289.     IF Install_VFW% = 1 THEN
  290.         AddSectionFilesToCopyList "VFW Runtime", SrcDir$, WinSysDir$
  291.         AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  292.         AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  293.         AddSectionFilesToCopyList "Profile", SrcDir$, WinSysDir$
  294.         IF OKWRITE% <> 1 THEN
  295.             i% = DoMsgBox("Can't access WINDOWS directory.  Drivers not installed.  Install continuing.", "Video-For-Windows Drivers", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  296.             ClearCopyList
  297.         ELSE
  298.             ''Check windrive diskspace
  299.             SizeReq& = GetCopyListCost ("","", "")
  300.  
  301.             IF SizeReq& <> 0 THEN
  302.                 i% = DoMsgBox("The WINDOWS directory does not have enough disk space.  VFW Drivers will need to be installed if not already present.", "Can't Install Video-For-Windows Drivers", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  303.                 ClearCopyList
  304.                 Install_VFW% = 0
  305.             ELSE
  306.                 CopyFilesInCopyList
  307.             ENDIF
  308.         ENDIF
  309.     ENDIF
  310.  
  311.     ''Update WIN.INI and SYSTEM.INI......................................
  312.     IF Install_VFW% = 1 THEN
  313.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  314.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  315.         CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  316.         CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  317.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  318.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  319.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  320.         PRO% = DoesFileExist(MakePath(WinSysDir$, "PROFDISP.EXE"), femExists)
  321.         IF (PRO% = 1)  THEN
  322.             Run ("profdisp")
  323.         ENDIF
  324.     ENDIF
  325.  
  326.     PRO% = DoesFileExist(MakePath(DEST$, "DEMORUN.EXE"), femExists)
  327.     IF (PRO% = 1)  THEN
  328.         WORKFILE$ = MakePath(DEST$, "DEMORUN.EXE") + " /UNZIPSHOW"
  329.         Run (WORKFILE$)
  330.     ENDIF
  331.     
  332.     PRO% = DoesFileExist(MakePath(DEST$, "DR_PRO.EXE"), femExists)
  333.     IF (PRO% = 1)  THEN
  334.         WORKFILE$ = MakePath(DEST$, "DR_PRO.EXE") + " /UNZIPSHOW"
  335.         Run (WORKFILE$)
  336.     ENDIF
  337.  
  338.     PRO% = DoesFileExist(MakePath(DEST$, "CBIRUN.EXE"), femExists)
  339.     IF (PRO% = 1)  THEN
  340.         WORKFILE$ = MakePath(DEST$, "CBIRUN.EXE") + " /UNZIPSHOW"
  341.         Run (WORKFILE$)
  342.     ENDIF
  343.     
  344.     PRO% = DoesFileExist(MakePath(DEST$, "CR_PRO.EXE"), femExists)
  345.     IF (PRO% = 1)  THEN
  346.         WORKFILE$ = MakePath(DEST$, "CR_PRO.EXE") + " /UNZIPSHOW"
  347.         Run (WORKFILE$)
  348.     ENDIF
  349.  
  350.  
  351.     ''Setup DDELINK.INI and DDELINK.EXE in Windows dir if needed ----------------------------------
  352.  
  353.     ''i% = DoMsgBox("Checking for \ ...DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  354.     IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN
  355.         NEWDEST$ = MID$(DEST$, 1, LEN(DEST$)-1)
  356.         ''i% = DoMsgBox("Found \...NEWDEST$ = "+ NEWDEST$ + "   DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  357.     ELSE
  358.         NEWDEST$ = DEST$
  359.         ''i% = DoMsgBox("NO Found \...NEWDEST$ = "+ NEWDEST$ + "DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  360.     ENDIF
  361.  
  362.  
  363.     WINdirectory$ = GetWindowsDir()
  364.     IF ((PRODUCT$ = "VHELP") OR (PRODUCT$ = "PRODDE")) THEN     ''Make .INI files with default path
  365.         CreateIniKeyValue MakePath(DEST$,"ddelink.ini"), "DDELINK", "PATH", NEWDEST$, cmoOverwrite
  366.         IF WIN_Sys_Write% = 1 THEN
  367.             CreateIniKeyValue MakePath(WINdirectory$,"ddelink.ini"), "DDELINK", "PATH", NEWDEST$, cmoOverwrite
  368.             CopyFile MakePath(DEST$,"ddelink.exe"), MakePath(WINdirectory$,"ddelink.exe"), cmoNone, 0
  369.         ENDIF
  370.     ELSEIF (PRODUCT$ = "CBIPRO") THEN
  371.         CreateIniKeyValue MakePath(DEST$,"cbilink.ini"), "CBILINK", "PATH", NEWDEST$, cmoOverwrite
  372.         IF WIN_Sys_Write% = 1 THEN
  373.             CreateIniKeyValue MakePath(WINdirectory$,"cbilink.ini"), "CBILINK", "PATH", NEWDEST$, cmoOverwrite
  374.             CopyFile MakePath(DEST$,"cbilink.exe"), MakePath(WINdirectory$,"cbilink.exe"), cmoNone, 0
  375.         ENDIF
  376.     ENDIF
  377.  
  378.  
  379.  
  380.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  381.         CreateProgmanGroup "DEMOrun", WinDir$+"DEMORUN.GRP", cmoNone
  382.         ShowProgmanGroup  "DEMOrun", 1, cmoNone
  383.     ELSE
  384.     ENDIF   
  385.  
  386.     ''Append old .MNU menu to new
  387.     i% = DoesFileExist(OLD_MNU$, femExists)
  388.  
  389.     IF i% = 1 THEN
  390.     CopyFile OLD_MNU$, DEST_MNU$, cmoNone, 1
  391.     END IF
  392.  
  393.  
  394.     ''Get the icon label def created by DQ in Create Disk
  395.  
  396. '$IFDEF DEMOQUICK
  397.     '$INCLUDE 'DEMOLABL.INC'
  398. '$ELSEIFDEF VHELP
  399.     '$INCLUDE 'DM_LAB_D.INC'
  400. '$ELSEIFDEF PRODDE
  401.     '$INCLUDE 'DM_LAB_D.INC'
  402. '$ELSEIFDEF CBIQUICK
  403.     '$INCLUDE 'DEMOLABL.INC'
  404. '$ELSEIFDEF CBIPRO
  405.     '$INCLUDE 'DM_LAB_D.INC'
  406. '$ELSE
  407.     i% = DoMsgBox("Product type not defined.", "Define product", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  408.     END
  409. '$ENDIF
  410.  
  411.  
  412.     ''Initializing definitions for DISK1-DISK20, up to 20 install disks
  413.     DISK1$ = ""
  414.     DISK2$ = ""
  415.     DISK3$ = ""
  416.     DISK4$ = ""
  417.     DISK5$ = ""
  418.     DISK6$ = ""
  419.     DISK7$ = ""
  420.     DISK8$ = ""
  421.     DISK9$ = ""
  422.     DISK10$ = ""
  423.     DISK11$ = ""
  424.     DISK12$ = ""
  425.     DISK13$ = ""
  426.     DISK14$ = ""
  427.     DISK15$ = ""
  428.     DISK16$ = ""
  429.     DISK17$ = ""
  430.     DISK18$ = ""
  431.     DISK19$ = ""
  432.     DISK20$ = ""
  433.  
  434.     ''Now use the DISKn variables set by DQ Create Disk to flag disks used
  435.     ''in this course install.  Example  DISK3 = "1" to flag disk 1 used.
  436.  
  437.     '$INCLUDE 'DISKNUM.INC'
  438.  
  439.     IF DISK2$ = "1" THEN
  440.     i% = DoMsgBox("Insert Disk # 2 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  441.     ClearCopyList
  442.     AddSectionFilesToCopyList "Files2", SrcDir$, DEST$
  443.     CopyFilesInCopyList
  444.     END IF
  445.  
  446.     IF DISK3$ = "1" THEN
  447.     i% = DoMsgBox("Insert Disk # 3 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  448.     ClearCopyList
  449.     AddSectionFilesToCopyList "Files3", SrcDir$, DEST$
  450.     CopyFilesInCopyList
  451.     END IF
  452.  
  453.     IF DISK4$ = "1" THEN
  454.     i% = DoMsgBox("Insert Disk # 4 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  455.     ClearCopyList
  456.     AddSectionFilesToCopyList "Files4", SrcDir$, DEST$
  457.     CopyFilesInCopyList
  458.     END IF
  459.  
  460.     IF DISK5$ = "1" THEN
  461.     i% = DoMsgBox("Insert Disk # 5 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  462.     ClearCopyList
  463.     AddSectionFilesToCopyList "Files5", SrcDir$, DEST$
  464.     CopyFilesInCopyList
  465.     END IF
  466.  
  467.     IF DISK6$ = "1" THEN
  468.     i% = DoMsgBox("Insert Disk # 6 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  469.     ClearCopyList
  470.     AddSectionFilesToCopyList "Files6", SrcDir$, DEST$
  471.     CopyFilesInCopyList
  472.     END IF
  473.  
  474.     IF DISK7$ = "1" THEN
  475.     i% = DoMsgBox("Insert Disk # 7 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  476.     ClearCopyList
  477.     AddSectionFilesToCopyList "Files7", SrcDir$, DEST$
  478.     CopyFilesInCopyList
  479.     END IF
  480.  
  481.     IF DISK8$ = "1" THEN
  482.     i% = DoMsgBox("Insert Disk # 8 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  483.     ClearCopyList
  484.     AddSectionFilesToCopyList "Files8", SrcDir$, DEST$
  485.     CopyFilesInCopyList
  486.     END IF
  487.  
  488.     IF DISK9$ = "1" THEN
  489.     i% = DoMsgBox("Insert Disk # 9 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  490.     ClearCopyList
  491.     AddSectionFilesToCopyList "Files9", SrcDir$, DEST$
  492.     CopyFilesInCopyList
  493.     END IF
  494.  
  495.     IF DISK10$ = "1" THEN
  496.     i% = DoMsgBox("Insert Disk # 10 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  497.     ClearCopyList
  498.     AddSectionFilesToCopyList "Files10", SrcDir$, DEST$
  499.     CopyFilesInCopyList
  500.     END IF
  501.  
  502.     IF DISK11$ = "1" THEN
  503.     i% = DoMsgBox("Insert Disk # 11 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  504.     ClearCopyList
  505.     AddSectionFilesToCopyList "Files11", SrcDir$, DEST$
  506.     CopyFilesInCopyList
  507.     END IF
  508.  
  509.     IF DISK12$ = "1" THEN
  510.     i% = DoMsgBox("Insert Disk # 12 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  511.     ClearCopyList
  512.     AddSectionFilesToCopyList "Files12", SrcDir$, DEST$
  513.     CopyFilesInCopyList
  514.     END IF
  515.  
  516.     IF DISK13$ = "1" THEN
  517.     i% = DoMsgBox("Insert Disk # 13 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  518.     ClearCopyList
  519.     AddSectionFilesToCopyList "Files13", SrcDir$, DEST$
  520.     CopyFilesInCopyList
  521.     END IF
  522.  
  523.     IF DISK14$ = "1" THEN
  524.     i% = DoMsgBox("Insert Disk # 14 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  525.     ClearCopyList
  526.     AddSectionFilesToCopyList "Files14", SrcDir$, DEST$
  527.     CopyFilesInCopyList
  528.     END IF
  529.  
  530.     IF DISK15$ = "1" THEN
  531.     i% = DoMsgBox("Insert Disk # 15 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  532.     ClearCopyList
  533.     AddSectionFilesToCopyList "Files15", SrcDir$, DEST$
  534.     CopyFilesInCopyList
  535.     END IF
  536.  
  537.     IF DISK16$ = "1" THEN
  538.     i% = DoMsgBox("Insert Disk # 16 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  539.     ClearCopyList
  540.     AddSectionFilesToCopyList "Files16", SrcDir$, DEST$
  541.     CopyFilesInCopyList
  542.     END IF
  543.  
  544.     IF DISK17$ = "1" THEN
  545.     i% = DoMsgBox("Insert Disk # 17 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  546.     ClearCopyList
  547.     AddSectionFilesToCopyList "Files17", SrcDir$, DEST$
  548.     CopyFilesInCopyList
  549.     END IF
  550.  
  551.     IF DISK18$ = "1" THEN
  552.     i% = DoMsgBox("Insert Disk # 18 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  553.     ClearCopyList
  554.     AddSectionFilesToCopyList "Files18", SrcDir$, DEST$
  555.     CopyFilesInCopyList
  556.     END IF
  557.  
  558.     IF DISK19$ = "1" THEN
  559.     i% = DoMsgBox("Insert Disk # 19 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  560.     ClearCopyList
  561.     AddSectionFilesToCopyList "Files19", SrcDir$, DEST$
  562.     CopyFilesInCopyList
  563.     END IF
  564.  
  565.     IF DISK20$ = "1" THEN
  566.     i% = DoMsgBox("Insert Disk # 20 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  567.     ClearCopyList
  568.     AddSectionFilesToCopyList "Files20", SrcDir$, DEST$
  569.     CopyFilesInCopyList
  570.     END IF
  571.  
  572.     CloseLogFile
  573.  
  574.     ClearCopyList
  575.  
  576.     ''Do RESTART if needed--------------------------------------------
  577.     IF RestartListEmpty() = 0 THEN
  578.         i% = DoMsgBox("Windows will now be exited and restarted.", "Setup Complete", MB_OK+MB_ICONINFORMATION)
  579.     err:
  580.         i% = ExitExecRestart()
  581.         i% = DoMsgBox("Windows cannot be restarted because MS-DOS applications are active.  Close all MS-DOS applications and then click on OK.", "Setup Complete", MB_OK+MB_ICONSTOP)
  582.         goto err
  583.     ENDIF
  584.  
  585.  
  586. END SUB
  587.  
  588.  
  589. '************************************************************************
  590. '** MakePath
  591. '**
  592. '** Purpose:
  593. '**     Appends a file name to the end of a directory path,
  594. '**     inserting a backslash character as needed.
  595. '** Arguments:
  596. '**     szDir$  - full directory path (with optional ending "\")
  597. '**     szFile$ - filename to append to directory
  598. '** Returns:
  599. '**     Resulting fully qualified path name.
  600. '*************************************************************************
  601. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  602.     IF szDir$ = "" THEN
  603.     MakePath = szFile$
  604.     ELSEIF szFile$ = "" THEN
  605.     MakePath = szDir$
  606.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  607.     MakePath = szDir$ + szFile$
  608.     ELSE
  609.     MakePath = szDir$ + "\" + szFile$
  610.     END IF
  611. END FUNCTION
  612.  
  613.                                                                                                  
  614.