home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 April (Special) / Chip-Special_1997-04_cd.bin / microtek / is206 / is206.exe / ISSETUP.MS_ / ISSETUP.MS
Text File  |  1992-08-11  |  6KB  |  233 lines

  1. '$DEFINE DEBUG  ''Define for script development/debugging
  2.  
  3. '$INCLUDE 'setupapi.inc'
  4. '$INCLUDE 'msdetect.inc'
  5.  
  6. ''Dialog ID's
  7. CONST WELCOME       = 100
  8. CONST ASKQUIT       = 200
  9. CONST DESTPATH      = 300
  10. CONST EXITFAILURE   = 400
  11. CONST EXITQUIT      = 600
  12. CONST EXITSUCCESS   = 700
  13. CONST OPTIONS       = 800
  14. CONST APPHELP       = 900
  15. CONST TEMPPATH      = 1000    
  16. CONST NOSPACE       = 1300
  17. CONST BADPATH       = 6400
  18. CONST SPACENEED     = 1200000     
  19.  
  20. ''Bitmap ID
  21. CONST LOGO = 1
  22.  
  23. GLOBAL DEST$        ''Default destination directory.
  24. GLOBAL TEMP$
  25.  
  26. DECLARE SUB Install
  27. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  28.  
  29.  
  30. INIT:
  31.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  32.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  33.  
  34.     SetBitmap CUIDLL$, LOGO
  35.     SetTitle "ImageStar II Installation"
  36.  
  37.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  38.     IF szInf$ = "" THEN
  39.         szInf$ = GetSymbolValue("STF_CWDDIR") + "ISSETUP.INF"
  40.     END IF
  41.     ReadInfFile szInf$
  42.  
  43.     DEST$ = "C:\IMGSTAR2"                                        
  44.     TEMP$ = "C:\TEMP"                                        
  45.  
  46. '$IFDEF DEBUG
  47.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  48.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  49.     IF IsDriveValid(WinDrive$) = 0 THEN
  50.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  51.         GOTO QUIT
  52.     END IF
  53. '$ENDIF ''DEBUG
  54.  
  55.  
  56. WELCOME:
  57.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  58.     IF sz$ = "CONTINUE" THEN
  59.         UIPop 1
  60.     ELSE
  61.         GOSUB ASKQUIT
  62.         GOTO WELCOME
  63.     END IF
  64.  
  65.  
  66. GETPATH:
  67.     SetSymbolValue "EditTextIn", DEST$
  68.     SetSymbolValue "EditFocus", "END"
  69. GETPATHL1:
  70.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  71.     DEST$ = GetSymbolValue("EditTextOut")
  72.  
  73.     IF sz$ = "CONTINUE" THEN
  74.         IF IsDirWritable(DEST$) = 0 THEN
  75.             GOSUB BADPATH
  76.             GOTO GETPATHL1
  77.         END IF
  78.         UIPop 1
  79.     ELSEIF sz$ = "REACTIVATE" THEN
  80.         GOTO GETPATHL1
  81.     ELSEIF sz$ = "BACK" THEN
  82.         UIPop 1
  83.         GOTO WELCOME
  84.     ELSE
  85.         GOSUB ASKQUIT
  86.         GOTO GETPATH
  87.     END IF
  88.  
  89. CHECKSPACE:
  90.     drive$ = MID$(DEST$, 1, 1)
  91.     free& = GetFreeSpaceForDrive(drive$)
  92.     IF free& < SPACENEED THEN
  93.         GOSUB NOSPACE
  94.         GOTO GETPATH
  95.     ENDIF
  96.  
  97.                                  
  98. GETTEMPPATH:
  99.     TEMP$=GetEnvVariableValue("TEMP")
  100.     if TEMP$ = "" THEN
  101.        TEMP$ = "C:\TEMP"
  102.     ENDIF
  103.     SetSymbolValue "EditTextIn", TEMP$
  104.     SetSymbolValue "EditFocus", "END"
  105. GETTEMPPATHL1:
  106.     sz$ = UIStartDlg(CUIDLL$, TEMPPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  107.     TEMP$ = GetSymbolValue("EditTextOut")
  108.  
  109.     IF sz$ = "CONTINUE" THEN
  110.         IF IsDirWritable(TEMP$) = 0 THEN
  111.             GOSUB BADPATH
  112.             GOTO GETTEMPPATHL1
  113.         END IF
  114.         UIPop 1
  115.     ELSEIF sz$ = "REACTIVATE" THEN
  116.         GOTO GETTEMPPATHL1
  117.     ELSEIF sz$ = "BACK" THEN
  118.         UIPop 1
  119.         GOTO GETPATH
  120.     ELSE
  121.         GOSUB ASKQUIT
  122.         GOTO GETTEMPPATH
  123.     END IF
  124.  
  125.  
  126.     Install
  127.  
  128.  
  129. QUIT:
  130.     ON ERROR GOTO ERRQUIT
  131.  
  132.     IF ERR = 0 THEN
  133.         dlg% = EXITSUCCESS
  134.     ELSE
  135.         dlg% = EXITQUIT
  136.     END IF
  137. QUITL1:
  138.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  139.     IF sz$ = "REACTIVATE" THEN
  140.         GOTO QUITL1
  141.     END IF
  142.     UIPop 1
  143.  
  144.     END
  145.  
  146. ERRQUIT:
  147.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  148.     END
  149.  
  150.  
  151.  
  152. BADPATH:
  153.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  154.     IF sz$ = "REACTIVATE" THEN
  155.         GOTO BADPATH
  156.     END IF
  157.     UIPop 1
  158.     RETURN
  159.  
  160.  
  161. NOSPACE:
  162.     sz$ = UIStartDlg(CUIDLL$, NOSPACE, "FInfo0DlgProc", 0, "")
  163.     IF sz$ = "REACTIVATE" THEN
  164.         GOTO NOSPACE
  165.     ENDIF     
  166.     UIPop 1
  167.     RETURN 
  168.  
  169.  
  170. ASKQUIT:
  171.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  172.  
  173.     IF sz$ = "EXIT" THEN
  174.         UIPopAll
  175.         ERROR STFQUIT
  176.     ELSEIF sz$ = "REACTIVATE" THEN
  177.         GOTO ASKQUIT
  178.     ELSE
  179.         UIPop 1
  180.     END IF
  181.     RETURN
  182.  
  183.  
  184.  
  185. '**
  186. '** Purpose:
  187. '**     Builds the copy list and performs all installation operations.
  188. '** Arguments:
  189. '**     none.
  190. '** Returns:
  191. '**     none.
  192. '*************************************************************************
  193. SUB Install STATIC
  194.  
  195.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  196.     CreateDir DEST$, cmoNone
  197.  
  198.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  199.     CopyFilesInCopyList
  200.  
  201.     CreateIniKeyValue "WIN.INI", "ImageStar II", "TEMP", TEMP$, cmoOverwrite
  202.  
  203.     CreateProgmanGroup "ImageStar II", "", cmoNone
  204.     ShowProgmanGroup  "ImageStar II", 1, cmoNone
  205.     CreateProgmanItem "ImageStar II", "ImageStar II", MakePath(DEST$,"is2.exe"), "", cmoOverwrite
  206.  
  207. END SUB
  208.  
  209.  
  210.  
  211. '**
  212. '** Purpose:
  213. '**     Appends a file name to the end of a directory path,
  214. '**     inserting a backslash character as needed.
  215. '** Arguments:
  216. '**     szDir$  - full directory path (with optional ending "\")
  217. '**     szFile$ - filename to append to directory
  218. '** Returns:
  219. '**     Resulting fully qualified path name.
  220. '*************************************************************************
  221. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  222.     IF szDir$ = "" THEN
  223.         MakePath = szFile$
  224.     ELSEIF szFile$ = "" THEN
  225.         MakePath = szDir$
  226.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  227.         MakePath = szDir$ + szFile$
  228.     ELSE
  229.         MakePath = szDir$ + "\" + szFile$
  230.     END IF
  231. END FUNCTION
  232.  
  233.