home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD 1 / SuperCD_1.iso / 3d95_int / cd_dr.mst < prev    next >
Text File  |  1996-10-14  |  12KB  |  375 lines

  1. '' CD_DR.MST
  2. '**************************************************************************
  3. '*                       ViaGrafix CD-ROM Interactive 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.  
  33. GLOBAL SrcDir$
  34. GLOBAL WinDir$
  35. GLOBAL WinSysDir$
  36. GLOBAL WINdirectory$
  37.  
  38. GLOBAL MajorVer%
  39. GLOBAL MinorVer%
  40. GLOBAL WinCheck95$
  41. GLOBAL HasWin95%
  42. GLOBAL WinCheckNT$
  43. GLOBAL HasNT%
  44.  
  45. GLOBAL NEWDEST$
  46. GLOBAL PRODUCT$
  47. GLOBAL VFW%         ''=1 if VFW Run Time previous install
  48. GLOBAL PRO%
  49. GLOBAL OKWRITE%
  50. GLOBAL OKWRITE1%
  51. GLOBAL OKWRITE2%
  52. GLOBAL OKWRITE3%
  53. GLOBAL Install_VFW%
  54. GLOBAL WIN_Sys_Write%
  55.  
  56. GLOBAL WantedDiskSize&  ''Used for disk size test
  57.  
  58. DECLARE SUB Install
  59. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  60.  
  61. ''DECLARE FUNCTION DoProtect LIB "PROTECT.DLL" (szDisk$) AS INTEGER
  62.  
  63. INIT:
  64.     CUIDLL$   = "mscuistf.dll"              ''Custom user interface dll
  65.     HELPPROC$ = "FHelpDlgProc"      ''Help dialog procedure
  66.  
  67.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  68.     WinDir$ = GetWindowsDir()
  69.     WinSysDir$ = GetWindowsSysDir()
  70.     Install_VFW% = 1        ''default is to install VFW drivers
  71.  
  72.     MajorVer% = GetWindowsMajorVersion()
  73.     MinorVer% = GetWindowsMinorVersion()
  74.  
  75.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  76.         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)
  77.         END
  78.     END IF
  79.  
  80.     WinCheck95$ = WinSysDir$+"IOSUBSYS"
  81.     HasWin95% = DoesDirExist(WinCheck95$)
  82.     WinCheckNT$ = WinDir$+"SYSTEM32"
  83.     HasNT% = DoesDirExist(WinCheckNT$)
  84.  
  85. '$IFDEF DEMOQUICK
  86.     PRODUCT$ = "DEMOQUICK"
  87. '$ELSEIFDEF VHELP
  88.     PRODUCT$ = "VHELP"
  89. '$ELSEIFDEF PRODDE
  90.     PRODUCT$ = "PRODDE"
  91. '$ELSEIFDEF CBIQUICK
  92.     PRODUCT$ = "CBIQUICK"
  93. '$ELSEIFDEF CBIPRO
  94.     PRODUCT$ = "CBIPRO"
  95. '$ELSE
  96.     i% = DoMsgBox("Product type not defined.", "Define product", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  97.     END
  98. '$ENDIF
  99.  
  100.     WinSysDir$ = GetWindowsSysDir()
  101.     IF (HasNT%) OR ((MajorVer% = 3) AND (MinorVer% = 95)) THEN
  102.         Install_VFW% = 0
  103.     END IF
  104.  
  105.     SetBitmap CUIDLL$, LOGO
  106.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  107.         SetTitle "Tutorial Install ... Learning DesignCAD 3D for Windows 95"
  108.     ELSE
  109.         SetTitle "Tutorial Install ... Learning DesignCAD 3D for Windows 95"
  110.     ENDIF
  111.  
  112.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  113.  
  114.     IF szInf$ = "" THEN
  115.      szInf$ = GetSymbolValue("STF_CWDDIR") + "CD_DR.INF"
  116.     END IF
  117.  
  118.     ReadInfFile szInf$
  119.  
  120.     OPTCUR$ = "1"
  121.     DEST$ = GetSymbolValue("STF_SRCDIR")
  122.  
  123. WELCOME:
  124.  
  125. GETPATH:
  126.  
  127.  
  128. GETPATHL1:
  129.  
  130.     ''------------------------------------------------------------------
  131.     SetRestartDir WinDir$
  132.  
  133.     OKWRITE% = IsDirWritable(WinDir$)
  134.     IF OKWRITE% <> 1 THEN
  135.         i% = DoMsgBox("Can't access your WINDOWS directory " + DEST$, "Setup Failed", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  136.         END
  137.     ENDIF       
  138.  
  139.     OKWRITE%  = IsDirWritable(WinDir$)
  140.     OKWRITE1% = IsDirWritable(WinSysDir$)
  141.     OKWRITE2% = IsFileWritable(MakePath(WinDir$, "SYSTEM.INI"))
  142.     OKWRITE3% = IsFileWritable(MakePath(WinDir$, "WIN.INI"))
  143.     IF ((OKWRITE% <> 1) OR (OKWRITE1% <> 1) OR (OKWRITE2% <> 1) OR (OKWRITE3% <> 1)) THEN
  144.         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)
  145.         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)
  146.         Install_VFW% = 0    ''Don't install drivers
  147.         WIN_Sys_Write% = 0
  148.     ENDIF
  149.  
  150.     Install
  151.  
  152.     ''------------------------------------------------------------------
  153.  
  154. QUIT:
  155.     ON ERROR GOTO ERRQUIT
  156.  
  157.     IF ERR = 0 THEN
  158.     dlg% = EXITSUCCESS
  159.     ELSEIF ERR = STFQUIT THEN
  160.     dlg% = EXITQUIT
  161.     ELSE
  162.     dlg% = EXITFAILURE
  163.     END IF
  164. QUITL1:
  165.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  166.     IF sz$ = "REACTIVATE" THEN
  167.     GOTO QUITL1
  168.     END IF
  169.     UIPop 1
  170.  
  171.     END
  172.  
  173. ERRQUIT:
  174.     i% = DoMsgBox("Problem with SETUP files, call (800) 842-4723 !", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  175.     END
  176.  
  177.  
  178.  
  179. BADPATH:
  180.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  181.     IF sz$ = "REACTIVATE" THEN
  182.     GOTO BADPATH
  183.     END IF
  184.     UIPop 1
  185.     RETURN
  186.  
  187.  
  188.  
  189. ASKQUIT:
  190.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  191.  
  192.     IF sz$ = "EXIT" THEN
  193.     UIPopAll
  194.     ERROR STFQUIT
  195.     ELSEIF sz$ = "REACTIVATE" THEN
  196.     GOTO ASKQUIT
  197.     ELSE
  198.     UIPop 1
  199.     END IF
  200.     RETURN
  201.  
  202.  
  203. '**********************************************************************
  204. '** Install
  205. '**
  206. '** Purpose:
  207. '**     Builds the copy list and performs all installation operations.
  208. '** Arguments:
  209. '**     none.
  210. '** Returns:
  211. '**     none.
  212. '*************************************************************************
  213. SUB Install STATIC
  214.  
  215.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  216.  
  217.     ''Add Video-For-Windows Run-Time files------------------------------
  218.     ''See if we can install VFW on system
  219.  
  220.     IF Install_VFW% = 1 THEN
  221.         AddSectionFilesToCopyList "VFW Runtime", SrcDir$, WinSysDir$
  222.         AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  223.         AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  224.         AddSectionFilesToCopyList "Profile", SrcDir$, WinSysDir$
  225.         IF OKWRITE% <> 1 THEN
  226.             i% = DoMsgBox("Cannot access WINDOWS directory.  Drivers not installed.", "Video-For-Windows Drivers", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  227.             ClearCopyList
  228.         ELSE
  229.             ''Check windrive diskspace
  230.             SizeReq& = GetCopyListCost ("","", "")
  231.  
  232.             IF SizeReq& <> 0 THEN
  233.                 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)
  234.                 ClearCopyList
  235.                 Install_VFW% = 0
  236.             ELSE
  237.                 CopyFilesInCopyList
  238.             ENDIF
  239.         ENDIF
  240.     ENDIF
  241.  
  242.  
  243.     ''Update WIN.INI and SYSTEM.INI......................................
  244.     IF Install_VFW% = 1 THEN
  245.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  246.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  247.         CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  248.         CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  249.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  250.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  251.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  252.         PRO% = DoesFileExist(MakePath(WinSysDir$, "PROFDISP.EXE"), femExists)
  253.         IF (PRO% = 1)  THEN
  254.             Run ("profdisp")
  255.         ENDIF
  256.     ENDIF
  257.  
  258.     PRO% = DoesFileExist(MakePath(DEST$, "DEMORUN.EXE"), femExists)    ''This should not happen since this is CD...Just in case there is a .ZIP
  259.     IF (PRO% = 1)  THEN
  260.         WORKFILE$ = MakePath(DEST$, "DEMORUN.EXE") + " /UNZIPSHOW"
  261. ''        Run (WORKFILE$)
  262.     ENDIF
  263.     
  264.     PRO% = DoesFileExist(MakePath(DEST$, "DR_PRO.EXE"), femExists)
  265.     IF (PRO% = 1)  THEN
  266.         WORKFILE$ = MakePath(DEST$, "DR_PRO.EXE") + " /UNZIPSHOW"
  267. ''        Run (WORKFILE$)
  268.     ENDIF
  269.  
  270.     PRO% = DoesFileExist(MakePath(DEST$, "CBIRUN.EXE"), femExists)
  271.     IF (PRO% = 1)  THEN
  272.         WORKFILE$ = MakePath(DEST$, "CBIRUN.EXE") + " /UNZIPSHOW"
  273. ''        Run (WORKFILE$)
  274.     ENDIF
  275.     
  276.     PRO% = DoesFileExist(MakePath(DEST$, "CR_PRO.EXE"), femExists)
  277.     IF (PRO% = 1)  THEN
  278.         WORKFILE$ = MakePath(DEST$, "CR_PRO.EXE") + " /UNZIPSHOW"
  279. ''        Run (WORKFILE$)
  280.     ENDIF
  281.  
  282.  
  283.  
  284.     ''Setup DDELINK.INI and DDELINK.EXE in Windows dir if needed ----------------------------------
  285.  
  286.     ''i% = DoMsgBox("Checking for \ ...DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  287.     IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN
  288.         NEWDEST$ = MID$(DEST$, 1, LEN(DEST$)-1)
  289.         ''i% = DoMsgBox("Found \...NEWDEST$ = "+ NEWDEST$ + "   DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  290.     ELSE
  291.         NEWDEST$ = DEST$
  292.         ''i% = DoMsgBox("NO Found \...NEWDEST$ = "+ NEWDEST$ + "DEST$ = "+ DEST$, "DDELINK.INI SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  293.     ENDIF
  294.  
  295.     WINdirectory$ = GetWindowsDir()
  296.     IF ((PRODUCT$ = "VHELP") OR (PRODUCT$ = "PRODDE")) THEN     ''Make .INI files with default path
  297.         IF WIN_Sys_Write% = 1 THEN
  298.             CreateIniKeyValue MakePath(WINdirectory$,"ddelink.ini"), "DDELINK", "PATH", NEWDEST$, cmoOverwrite
  299.             CopyFile MakePath(DEST$,"ddelink.exe"), MakePath(WINdirectory$,"ddelink.exe"), cmoNone, 0
  300.         ENDIF
  301.     ELSEIF (PRODUCT$ = "CBIPRO") THEN
  302.         IF WIN_Sys_Write% = 1 THEN
  303.             CreateIniKeyValue MakePath(WINdirectory$,"cbilink.ini"), "CBILINK", "PATH", NEWDEST$, cmoOverwrite
  304.             CopyFile MakePath(DEST$,"cbilink.exe"), MakePath(WINdirectory$,"cbilink.exe"), cmoNone, 0
  305.         ENDIF
  306.     ENDIF
  307.  
  308.  
  309.  
  310.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  311.         CreateProgmanGroup "ViaGrafix CD-ROM Training", WinDir$+"DEMORUN.GRP", cmoNone
  312.         ShowProgmanGroup  "ViaGrafix CD-ROM Training", 1, cmoNone
  313.     ELSE
  314.         CreateProgmanGroup "ViaGrafix CD-ROM Training", WinDir$+"CBIRUN.GRP", cmoNone
  315.         ShowProgmanGroup  "ViaGrafix CD-ROM Training", 1, cmoNone
  316.     ENDIF
  317.  
  318.  
  319.     ''Get the icon label def created by DQ in Create Disk
  320.  
  321. '$IFDEF DEMOQUICK
  322.     '$INCLUDE 'DEMOLABL.INC'
  323. '$ELSEIFDEF VHELP
  324.     '$INCLUDE 'DM_LAB_D.INC'
  325. '$ELSEIFDEF PRODDE
  326.     '$INCLUDE 'DM_LAB_D.INC'
  327. '$ELSEIFDEF CBIQUICK
  328.     '$INCLUDE 'DEMOLABL.INC'
  329. '$ELSEIFDEF CBIPRO
  330.     '$INCLUDE 'DM_LAB_D.INC'
  331. '$ELSE
  332.     i% = DoMsgBox("Product type not defined.", "Define product", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  333.     END
  334. '$ENDIF
  335.  
  336.     ClearCopyList
  337.  
  338.     ''Do RESTART if needed--------------------------------------------
  339.     IF RestartListEmpty() = 0 THEN
  340.         i% = DoMsgBox("Windows will now be exited and restarted.", "Setup Complete", MB_OK+MB_ICONINFORMATION)
  341.     err:
  342.         i% = ExitExecRestart()
  343.         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)
  344.         goto err
  345.     ENDIF
  346.  
  347.  
  348. END SUB
  349.  
  350.  
  351. '************************************************************************
  352. '** MakePath
  353. '**
  354. '** Purpose:
  355. '**     Appends a file name to the end of a directory path,
  356. '**     inserting a backslash character as needed.
  357. '** Arguments:
  358. '**     szDir$  - full directory path (with optional ending "\")
  359. '**     szFile$ - filename to append to directory
  360. '** Returns:
  361. '**     Resulting fully qualified path name.
  362. '*************************************************************************
  363. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  364.     IF szDir$ = "" THEN
  365.     MakePath = szFile$
  366.     ELSEIF szFile$ = "" THEN
  367.     MakePath = szDir$
  368.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  369.     MakePath = szDir$ + szFile$
  370.     ELSE
  371.     MakePath = szDir$ + "\" + szFile$
  372.     END IF
  373. END FUNCTION
  374.  
  375.