home *** CD-ROM | disk | FTP | other *** search
/ Program Metropolis - Software Boutique 95 / SOFTWARECD.iso / ibmcwin / disk1 / setup.mst < prev    next >
Encoding:
Text File  |  1994-03-10  |  7.0 KB  |  233 lines

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