home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0210 - 0219 / ibm0210-0219 / ibm0213.tar / ibm0213 / ALFDIGI.ZIP / CARE.MS_ / CARE.bin
Encoding:
Text File  |  1994-04-21  |  6.5 KB  |  217 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 APPHELP       = 900
  18. CONST BADPATH       = 6400
  19.  
  20. ''Bitmap ID
  21. CONST LOGO = 1
  22.  
  23. GLOBAL DEST$        ''Default destination directory.
  24.  
  25. DECLARE SUB Install
  26. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  27.  
  28.  
  29. INIT:
  30.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  31.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  32.  
  33.     SetBitmap CUIDLL$, LOGO
  34.     SetTitle "DigiPlanner 3.02 Installation"
  35.  
  36.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  37.     IF szInf$ = "" THEN
  38.         szInf$ = GetSymbolValue("STF_CWDDIR") + "CARE.INF"
  39.     END IF
  40.     ReadInfFile szInf$
  41.  
  42.     DEST$ = "C:\digiwin"
  43.  
  44. '$IFDEF DEBUG
  45.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  46.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  47.     IF IsDriveValid(WinDrive$) = 0 THEN
  48.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  49.         GOTO QUIT
  50.     END IF
  51. '$ENDIF ''DEBUG
  52.  
  53.  
  54. WELCOME:
  55.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  56.     IF sz$ = "CONTINUE" THEN
  57.         UIPop 1
  58.     ELSE
  59.         GOSUB ASKQUIT
  60.         GOTO WELCOME
  61.     END IF
  62.  
  63.  
  64. GETPATH:
  65.     SetSymbolValue "EditTextIn", DEST$
  66.     SetSymbolValue "EditFocus", "END"
  67. GETPATHL1:
  68.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  69.     DEST$ = GetSymbolValue("EditTextOut")
  70.  
  71.     IF sz$ = "CONTINUE" THEN
  72.         IF IsDirWritable(DEST$) = 0 THEN
  73.             GOSUB BADPATH
  74.             GOTO GETPATHL1
  75.         END IF
  76.         UIPop 1
  77.     ELSEIF sz$ = "REACTIVATE" THEN
  78.         GOTO GETPATHL1
  79.     ELSEIF sz$ = "BACK" THEN
  80.         UIPop 1
  81.         GOTO WELCOME
  82.     ELSE
  83.         GOSUB ASKQUIT
  84.         GOTO GETPATH
  85.     END IF
  86.  
  87.  
  88.     Install
  89.  
  90.  
  91. QUIT:
  92.     ON ERROR GOTO ERRQUIT
  93.  
  94.     IF ERR = 0 THEN
  95.         dlg% = EXITSUCCESS
  96.     ELSEIF ERR = STFQUIT THEN
  97.         dlg% = EXITQUIT
  98.     ELSE
  99.         dlg% = EXITFAILURE
  100.     END IF
  101. QUITL1:
  102.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  103.     IF sz$ = "REACTIVATE" THEN
  104.         GOTO QUITL1
  105.     END IF
  106.     UIPop 1
  107.  
  108.     END
  109.  
  110. ERRQUIT:
  111.     i% = DoMsgBox("Setup sources were corrupted; please contact customer support.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  112.     END
  113.  
  114. BADPATH:
  115.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  116.     IF sz$ = "REACTIVATE" THEN
  117.         GOTO BADPATH
  118.     END IF
  119.     UIPop 1
  120.     RETURN
  121.  
  122. ASKQUIT:
  123.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  124.  
  125.     IF sz$ = "EXIT" THEN
  126.         UIPopAll
  127.         ERROR STFQUIT
  128.     ELSEIF sz$ = "REACTIVATE" THEN
  129.         GOTO ASKQUIT
  130.     ELSE
  131.         UIPop 1
  132.     END IF
  133.     RETURN
  134.  
  135. '**
  136. '** Purpose:
  137. '**     Builds the copy list and performs all installation operations.
  138. '** Arguments:
  139. '**     none.
  140. '** Returns:
  141. '**     none.
  142. '*************************************************************************
  143. SUB Install STATIC
  144.  
  145.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  146.     CreateDir DEST$, cmoNone
  147.  
  148.     CopyFile MakePath(SrcDir$,"idistlst.txt"), MakePath(DEST$,"idistlst.txt"), cmoNone, 0
  149.     CopyFile MakePath(SrcDir$,"ddistlst.txt"), MakePath(DEST$,"ddistlst.txt"), cmoNone, 0
  150.     CopyFile MakePath(SrcDir$,"dprcelst.txt"), MakePath(DEST$,"dprcelst.txt"), cmoNone, 0
  151.     CopyFile MakePath(SrcDir$,"dprint.txt"), MakePath(DEST$,"dprint.txt"), cmoNone, 0
  152.     'CopyFile MakePath(SrcDir$,"bmps"), MakePath(DEST$,"bmps"), cmoNone, 0
  153.     'CopyFile MakePath(SrcDir$,"logo.bmp"), MakePath(DEST$,"logo.bmp"), cmoNone, 0
  154.  
  155.     'OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  156.     'WriteToLogFile "User chose '" + DEST$ +"' as destination directory."
  157.     'WriteToLogFile ""
  158.  
  159.     ClearCopyList
  160.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  161.     CopyFilesInCopyList
  162.     CopyFile MakePath(Dest$,"ddigithr.ini"), MakePath(MID$(GetWindowsDir, 1, 1)+":\windows","ddigithr.ini"), cmoNone, 0
  163.  
  164.     'IF DoesIniKeyExist("WIN.INI", "Extensions", "APP") THEN
  165.     '    'WriteToLogFile "APP already exists in [Extensions]"
  166.     'ELSE
  167.         'WriteToLogFile "Adding APP to [Extensions]"
  168.         'CreateIniKeyValue "WIN.INI", "Extensions", "APP", MakePath(DEST$,"RUNAPW.EXE")+" ^.APP", cmoVital OR cmoOverwrite
  169.         'AddSectionFilesToCopyList "EXEs", SrcDir$, DEST$
  170.     'END IF
  171.     
  172.     CreateProgmanGroup "DigiPlanner 3.02", "", cmoNone
  173.     ShowProgmanGroup  "DigiPlanner 3.02", 1, cmoNone
  174.     CreateProgmanItem "DigiPlanner 3.02", "DigiPlanner 3.02", MakePath(DEST$,"ddigithr.exe"), "", cmoOverwrite
  175.  
  176.     RemoveFile MakePath(DEST$,"_mstest.exe"), cmoNone
  177.     RemoveFile MakePath(DEST$,"care.inf"), cmoNone
  178.     RemoveFile MakePath(DEST$,"care.mst"), cmoNone
  179.     RemoveFile MakePath(DEST$,"mscomstf.dll"), cmoNone
  180.     RemoveFile MakePath(DEST$,"mscuistf.dll"), cmoNone
  181.     RemoveFile MakePath(DEST$,"msdetect.inc"), cmoNone
  182.     RemoveFile MakePath(DEST$,"msdetstf.dll"), cmoNone
  183.     RemoveFile MakePath(DEST$,"msinsstf.dll"), cmoNone
  184.     RemoveFile MakePath(DEST$,"msshlstf.dll"), cmoNone
  185.     RemoveFile MakePath(DEST$,"msuilstf.dll"), cmoNone
  186.     RemoveFile MakePath(DEST$,"setup.exe"), cmoNone
  187.     RemoveFile MakePath(DEST$,"setup.lst"), cmoNone
  188.     RemoveFile MakePath(DEST$,"setupapi.inc"), cmoNone
  189.     RemoveFile MakePath(DEST$,"ver.dll"), cmoNone
  190.     RemoveFile MakePath(DEST$,"ddigitwo.ini"), cmoNone
  191.  
  192.     CloseLogFile
  193.  
  194. END SUB
  195.  
  196. '**
  197. '** Purpose:
  198. '**     Appends a file name to the end of a directory path,
  199. '**     inserting a backslash character as needed.
  200. '** Arguments:
  201. '**     szDir$  - full directory path (with optional ending "\")
  202. '**     szFile$ - filename to append to directory
  203. '** Returns:
  204. '**     Resulting fully qualified path name.
  205. '*************************************************************************
  206. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  207.     IF szDir$ = "" THEN
  208.         MakePath = szFile$
  209.     ELSEIF szFile$ = "" THEN
  210.         MakePath = szDir$
  211.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  212.         MakePath = szDir$ + szFile$
  213.     ELSE
  214.         MakePath = szDir$ + "\" + szFile$
  215.     END IF
  216. END FUNCTION
  217.