home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / demo / janbit / cvitour / disk1 / demorun.mst < prev    next >
Text File  |  1995-11-28  |  19KB  |  623 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 "LabWindows/CVI Demo 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:\CVIDEMO"
  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.         
  321.         PRO% = DoesFileExist(MakePath(WinSysDir$, "PROFDISP.EXE"), femExists)
  322.         IF (PRO% = 1)  THEN
  323.             Run ("profdisp")
  324.         ENDIF
  325.     ENDIF
  326.  
  327.     PRO% = DoesFileExist(MakePath(DEST$, "SHOWGO.EXE"), femExists)
  328.     IF (PRO% = 1)  THEN
  329.         CHDRIVE DEST$      ''This is REQUIRED
  330.         CHDIR DEST$
  331.         WORKFILE$ = MakePath(DEST$, "SHOWGO.EXE")
  332.         ''i% = DoMsgBox(WORKFILE$, "Running SHOWGO From here", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  333.         Run (WORKFILE$)
  334.     ENDIF
  335.     
  336.     PRO% = DoesFileExist(MakePath(DEST$, "DEMORUN.EXE"), femExists)
  337.     IF (PRO% = 1)  THEN
  338.         WORKFILE$ = MakePath(DEST$, "DEMORUN.EXE") + " /UNZIPSHOW"
  339. ''        Run (WORKFILE$)
  340.     ENDIF
  341.     
  342.     PRO% = DoesFileExist(MakePath(DEST$, "DR_PRO.EXE"), femExists)
  343.     IF (PRO% = 1)  THEN
  344.         WORKFILE$ = MakePath(DEST$, "DR_PRO.EXE") + " /UNZIPSHOW"
  345. ''        Run (WORKFILE$)
  346.     ENDIF
  347.  
  348.     PRO% = DoesFileExist(MakePath(DEST$, "CBIRUN.EXE"), femExists)
  349.     IF (PRO% = 1)  THEN
  350.         WORKFILE$ = MakePath(DEST$, "CBIRUN.EXE") + " /UNZIPSHOW"
  351. ''        Run (WORKFILE$)
  352.     ENDIF
  353.     
  354.     PRO% = DoesFileExist(MakePath(DEST$, "CR_PRO.EXE"), femExists)
  355.     IF (PRO% = 1)  THEN
  356.         WORKFILE$ = MakePath(DEST$, "CR_PRO.EXE") + " /UNZIPSHOW"
  357. ''        Run (WORKFILE$)
  358.     ENDIF
  359.  
  360.  
  361.     ''Setup DDELINK.INI and DDELINK.EXE in Windows dir if needed ----------------------------------
  362.  
  363.     ''i% = DoMsgBox("Checking for \ ...DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  364.     IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN
  365.         NEWDEST$ = MID$(DEST$, 1, LEN(DEST$)-1)
  366.         ''i% = DoMsgBox("Found \...NEWDEST$ = "+ NEWDEST$ + "   DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  367.     ELSE
  368.         NEWDEST$ = DEST$
  369.         ''i% = DoMsgBox("NO Found \...NEWDEST$ = "+ NEWDEST$ + "DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  370.     ENDIF
  371.  
  372.  
  373.     WINdirectory$ = GetWindowsDir()
  374.     IF ((PRODUCT$ = "VHELP") OR (PRODUCT$ = "PRODDE")) THEN     ''Make .INI files with default path
  375.         CreateIniKeyValue MakePath(DEST$,"ddelink.ini"), "DDELINK", "PATH", NEWDEST$, cmoOverwrite
  376.         IF WIN_Sys_Write% = 1 THEN
  377.             CreateIniKeyValue MakePath(WINdirectory$,"ddelink.ini"), "DDELINK", "PATH", NEWDEST$, cmoOverwrite
  378.             CopyFile MakePath(DEST$,"ddelink.exe"), MakePath(WINdirectory$,"ddelink.exe"), cmoNone, 0
  379.         ENDIF
  380.     ELSEIF (PRODUCT$ = "CBIPRO") THEN
  381.         CreateIniKeyValue MakePath(DEST$,"cbilink.ini"), "CBILINK", "PATH", NEWDEST$, cmoOverwrite
  382.         IF WIN_Sys_Write% = 1 THEN
  383.             CreateIniKeyValue MakePath(WINdirectory$,"cbilink.ini"), "CBILINK", "PATH", NEWDEST$, cmoOverwrite
  384.             CopyFile MakePath(DEST$,"cbilink.exe"), MakePath(WINdirectory$,"cbilink.exe"), cmoNone, 0
  385.         ENDIF
  386.     ENDIF
  387.  
  388.  
  389.  
  390.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  391.         CreateProgmanGroup "DEMOrun", WinDir$+"DEMORUN.GRP", cmoNone
  392.         ShowProgmanGroup  "DEMOrun", 1, cmoNone
  393.     ELSE
  394.     ENDIF   
  395.  
  396.     ''Append old .MNU menu to new
  397.     i% = DoesFileExist(OLD_MNU$, femExists)
  398.  
  399.     IF i% = 1 THEN
  400.     CopyFile OLD_MNU$, DEST_MNU$, cmoNone, 1
  401.     END IF
  402.  
  403.  
  404.     ''Get the icon label def created by DQ in Create Disk
  405.  
  406. '$IFDEF DEMOQUICK
  407.     '$INCLUDE 'DEMOLABL.INC'
  408. '$ELSEIFDEF VHELP
  409.     '$INCLUDE 'DM_LAB_D.INC'
  410. '$ELSEIFDEF PRODDE
  411.     '$INCLUDE 'DM_LAB_D.INC'
  412. '$ELSEIFDEF CBIQUICK
  413.     '$INCLUDE 'DEMOLABL.INC'
  414. '$ELSEIFDEF CBIPRO
  415.     '$INCLUDE 'DM_LAB_D.INC'
  416. '$ELSE
  417.     i% = DoMsgBox("Product type not defined.", "Define product", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  418.     END
  419. '$ENDIF
  420.  
  421.  
  422.     ''Initializing definitions for DISK1-DISK20, up to 20 install disks
  423.     DISK1$ = ""
  424.     DISK2$ = ""
  425.     DISK3$ = ""
  426.     DISK4$ = ""
  427.     DISK5$ = ""
  428.     DISK6$ = ""
  429.     DISK7$ = ""
  430.     DISK8$ = ""
  431.     DISK9$ = ""
  432.     DISK10$ = ""
  433.     DISK11$ = ""
  434.     DISK12$ = ""
  435.     DISK13$ = ""
  436.     DISK14$ = ""
  437.     DISK15$ = ""
  438.     DISK16$ = ""
  439.     DISK17$ = ""
  440.     DISK18$ = ""
  441.     DISK19$ = ""
  442.     DISK20$ = ""
  443.  
  444.     ''Now use the DISKn variables set by DQ Create Disk to flag disks used
  445.     ''in this course install.  Example  DISK3 = "1" to flag disk 1 used.
  446.  
  447.     '$INCLUDE 'DISKNUM.INC'
  448.  
  449.     IF DISK2$ = "1" THEN
  450.     i% = DoMsgBox("Insert Disk # 2 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  451.     ClearCopyList
  452.     AddSectionFilesToCopyList "Files2", SrcDir$, DEST$
  453.     CopyFilesInCopyList
  454.     END IF
  455.  
  456.     IF DISK3$ = "1" THEN
  457.     i% = DoMsgBox("Insert Disk # 3 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  458.     ClearCopyList
  459.     AddSectionFilesToCopyList "Files3", SrcDir$, DEST$
  460.     CopyFilesInCopyList
  461.     END IF
  462.  
  463.     IF DISK4$ = "1" THEN
  464.     i% = DoMsgBox("Insert Disk # 4 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  465.     ClearCopyList
  466.     AddSectionFilesToCopyList "Files4", SrcDir$, DEST$
  467.     CopyFilesInCopyList
  468.     END IF
  469.  
  470.     IF DISK5$ = "1" THEN
  471.     i% = DoMsgBox("Insert Disk # 5 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  472.     ClearCopyList
  473.     AddSectionFilesToCopyList "Files5", SrcDir$, DEST$
  474.     CopyFilesInCopyList
  475.     END IF
  476.  
  477.     IF DISK6$ = "1" THEN
  478.     i% = DoMsgBox("Insert Disk # 6 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  479.     ClearCopyList
  480.     AddSectionFilesToCopyList "Files6", SrcDir$, DEST$
  481.     CopyFilesInCopyList
  482.     END IF
  483.  
  484.     IF DISK7$ = "1" THEN
  485.     i% = DoMsgBox("Insert Disk # 7 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  486.     ClearCopyList
  487.     AddSectionFilesToCopyList "Files7", SrcDir$, DEST$
  488.     CopyFilesInCopyList
  489.     END IF
  490.  
  491.     IF DISK8$ = "1" THEN
  492.     i% = DoMsgBox("Insert Disk # 8 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  493.     ClearCopyList
  494.     AddSectionFilesToCopyList "Files8", SrcDir$, DEST$
  495.     CopyFilesInCopyList
  496.     END IF
  497.  
  498.     IF DISK9$ = "1" THEN
  499.     i% = DoMsgBox("Insert Disk # 9 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  500.     ClearCopyList
  501.     AddSectionFilesToCopyList "Files9", SrcDir$, DEST$
  502.     CopyFilesInCopyList
  503.     END IF
  504.  
  505.     IF DISK10$ = "1" THEN
  506.     i% = DoMsgBox("Insert Disk # 10 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  507.     ClearCopyList
  508.     AddSectionFilesToCopyList "Files10", SrcDir$, DEST$
  509.     CopyFilesInCopyList
  510.     END IF
  511.  
  512.     IF DISK11$ = "1" THEN
  513.     i% = DoMsgBox("Insert Disk # 11 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  514.     ClearCopyList
  515.     AddSectionFilesToCopyList "Files11", SrcDir$, DEST$
  516.     CopyFilesInCopyList
  517.     END IF
  518.  
  519.     IF DISK12$ = "1" THEN
  520.     i% = DoMsgBox("Insert Disk # 12 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  521.     ClearCopyList
  522.     AddSectionFilesToCopyList "Files12", SrcDir$, DEST$
  523.     CopyFilesInCopyList
  524.     END IF
  525.  
  526.     IF DISK13$ = "1" THEN
  527.     i% = DoMsgBox("Insert Disk # 13 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  528.     ClearCopyList
  529.     AddSectionFilesToCopyList "Files13", SrcDir$, DEST$
  530.     CopyFilesInCopyList
  531.     END IF
  532.  
  533.     IF DISK14$ = "1" THEN
  534.     i% = DoMsgBox("Insert Disk # 14 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  535.     ClearCopyList
  536.     AddSectionFilesToCopyList "Files14", SrcDir$, DEST$
  537.     CopyFilesInCopyList
  538.     END IF
  539.  
  540.     IF DISK15$ = "1" THEN
  541.     i% = DoMsgBox("Insert Disk # 15 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  542.     ClearCopyList
  543.     AddSectionFilesToCopyList "Files15", SrcDir$, DEST$
  544.     CopyFilesInCopyList
  545.     END IF
  546.  
  547.     IF DISK16$ = "1" THEN
  548.     i% = DoMsgBox("Insert Disk # 16 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  549.     ClearCopyList
  550.     AddSectionFilesToCopyList "Files16", SrcDir$, DEST$
  551.     CopyFilesInCopyList
  552.     END IF
  553.  
  554.     IF DISK17$ = "1" THEN
  555.     i% = DoMsgBox("Insert Disk # 17 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  556.     ClearCopyList
  557.     AddSectionFilesToCopyList "Files17", SrcDir$, DEST$
  558.     CopyFilesInCopyList
  559.     END IF
  560.  
  561.     IF DISK18$ = "1" THEN
  562.     i% = DoMsgBox("Insert Disk # 18 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  563.     ClearCopyList
  564.     AddSectionFilesToCopyList "Files18", SrcDir$, DEST$
  565.     CopyFilesInCopyList
  566.     END IF
  567.  
  568.     IF DISK19$ = "1" THEN
  569.     i% = DoMsgBox("Insert Disk # 19 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  570.     ClearCopyList
  571.     AddSectionFilesToCopyList "Files19", SrcDir$, DEST$
  572.     CopyFilesInCopyList
  573.     END IF
  574.  
  575.     IF DISK20$ = "1" THEN
  576.     i% = DoMsgBox("Insert Disk # 20 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  577.     ClearCopyList
  578.     AddSectionFilesToCopyList "Files20", SrcDir$, DEST$
  579.     CopyFilesInCopyList
  580.     END IF
  581.  
  582.     CloseLogFile
  583.  
  584.     ClearCopyList
  585.  
  586.     ''Do RESTART if needed--------------------------------------------
  587.     IF RestartListEmpty() = 0 THEN
  588.         i% = DoMsgBox("Windows will now be exited and restarted.", "Setup Complete", MB_OK+MB_ICONINFORMATION)
  589.     err:
  590.         i% = ExitExecRestart()
  591.         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)
  592.         goto err
  593.     ENDIF
  594.  
  595.  
  596. END SUB
  597.  
  598.  
  599. '************************************************************************
  600. '** MakePath
  601. '**
  602. '** Purpose:
  603. '**     Appends a file name to the end of a directory path,
  604. '**     inserting a backslash character as needed.
  605. '** Arguments:
  606. '**     szDir$  - full directory path (with optional ending "\")
  607. '**     szFile$ - filename to append to directory
  608. '** Returns:
  609. '**     Resulting fully qualified path name.
  610. '*************************************************************************
  611. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  612.     IF szDir$ = "" THEN
  613.     MakePath = szFile$
  614.     ELSEIF szFile$ = "" THEN
  615.     MakePath = szDir$
  616.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  617.     MakePath = szDir$ + szFile$
  618.     ELSE
  619.     MakePath = szDir$ + "\" + szFile$
  620.     END IF
  621. END FUNCTION
  622.  
  623.