home *** CD-ROM | disk | FTP | other *** search
/ Learning Windows NT Server / LearningWindowsNTCDROMTutorialForWindowsServerVersion3511996.disc1of1.iso / cd_dr.mst < prev    next >
Text File  |  1996-08-23  |  12KB  |  375 lines

  1. '' CD_DR.MST
  2. '**************************************************************************
  3. '*                       ViaGrafix Interactive Training
  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 "ViaGrafix Interactive Training Install ... Learning Windows NT 3.51, Server"
  108.     ELSE
  109.         SetTitle "ViaGrafix Interactive Training Install ... Learning Windows NT 3.51, Server"
  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 (508) 263-3030 !", "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 "DEMOrun", WinDir$+"DEMORUN.GRP", cmoNone
  312.         ShowProgmanGroup  "DEMOrun", 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.