home *** CD-ROM | disk | FTP | other *** search
/ Softline PAY-CD / Softline PAY-CD(1994).iso / programm / delphi3 / demo / disk1 / infopost.mst < prev    next >
Encoding:
Text File  |  1994-01-28  |  6.4 KB  |  256 lines

  1. '**************************************************************************
  2. '*                       Infopost Installation Script
  3. '**************************************************************************
  4.  
  5. DRIVEFREE$ = "2300000"
  6.  
  7. '$DEFINE DEBUG  ''Define for script development/debugging
  8.  
  9. '$INCLUDE 'setupapi.inc'
  10. '$INCLUDE 'msdetect.inc'
  11.  
  12. ''Dialog ID's
  13. CONST WELCOME       = 100
  14. CONST ASKQUIT       = 200
  15. CONST DESTPATH      = 300
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST OPTIONS       = 800
  20. CONST APPHELP       = 900
  21. CONST CUSTINST        = 6200
  22. CONST TOOBIG        = 6300
  23. CONST BADPATH       = 6400
  24.  
  25. CONST APPFILES        = 1
  26.  
  27. ''Bitmap ID
  28. CONST LOGO = 1
  29.  
  30. GLOBAL DEST$        ''Default destination directory.
  31.  
  32.  
  33. DECLARE SUB Install
  34. DECLARE SUB ModifyIniFile
  35. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  36.  
  37.  
  38. INIT:
  39.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  40.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  41.  
  42.     SetBitmap CUIDLL$, LOGO
  43.     SetTitle "Delphi /InfoPost Installation"
  44.  
  45.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  46.     IF szInf$ = "" THEN
  47.         szInf$ = GetSymbolValue("STF_CWDDIR") + "INFOPOST.INF"
  48.     END IF
  49.     ReadInfFile szInf$
  50.  
  51.     OPTCUR$ = "1"
  52.     DEST$ = "C:\INFOPOST"
  53.     
  54.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  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. OPTION:
  67.     SetSymbolValue "RadioDefault", OPTCUR$
  68.     GOTO GETPATH
  69. OPTL1:
  70.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  71.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  72.  
  73.     IF sz$ = "CONTINUE" THEN
  74.         UIPop(1)
  75.     ELSEIF sz$ = "REACTIVATE" THEN
  76.         GOTO OPTL1
  77.     ELSE
  78.         GOSUB ASKQUIT
  79.         GOTO WELCOME 
  80.     '*** früher: GOTO OPTION
  81.     END IF
  82.  
  83.  
  84. GETPATH:
  85.     SetSymbolValue "EditTextIn", DEST$
  86.     SetSymbolValue "EditFocus", "END"
  87. GETPATHL1:
  88.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  89.     DEST$ = GetSymbolValue("EditTextOut")
  90.  
  91.     
  92.     IF sz$ = "CONTINUE" THEN
  93.         IF IsDirWritable(DEST$) = 0 THEN
  94.             GOSUB BADPATH
  95.             GOTO GETPATHL1
  96.         END IF
  97.         UIPop 1
  98.     ELSEIF sz$ = "REACTIVATE" THEN
  99.         GOTO GETPATHL1
  100.     ELSEIF sz$ = "BACK" THEN
  101.         UIPop 1
  102.         GOTO WELCOME
  103.     ELSE
  104.         GOSUB ASKQUIT
  105.         GOTO GETPATH
  106.     END IF          
  107.     
  108.     '' Check free space for target drive
  109.     DestDrive$ = MID$(DEST$, 1, 1)
  110.     mustfree& = VAL (DRIVEFREE$)
  111.     free& = GetFreeSpaceForDrive (DestDrive$)               
  112.     IF free& < mustfree& THEN
  113.         GOSUB TOOBIGG
  114.         GOTO GETPATH
  115.     END IF              
  116.  
  117.     Install
  118.  
  119.  
  120. QUIT:
  121.     ON ERROR GOTO ERRQUIT
  122.     
  123.     IF ERR = 0 THEN
  124.         dlg% = EXITSUCCESS
  125.     ELSEIF ERR = STFQUIT THEN
  126.         dlg% = EXITQUIT
  127.     ELSE
  128.         dlg% = EXITFAILURE
  129.     END IF
  130. QUITL1:
  131.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  132.     IF sz$ = "REACTIVATE" THEN
  133.         GOTO QUITL1
  134.     END IF
  135.     UIPop 1
  136.     
  137.     CloseLogFile
  138.     
  139.     END
  140.  
  141. ERRQUIT:
  142.     i% = DoMsgBox("Problem mit Quelldateien - bitte wenden Sie sich an die Delphi /InfoPost Hotline!", "Delphi /InfoPost Installation", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  143.     END
  144.  
  145.  
  146.  
  147. BADPATH:
  148.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  149.     IF sz$ = "REACTIVATE" THEN
  150.         GOTO BADPATH
  151.     END IF
  152.     UIPop 1
  153.     RETURN
  154.  
  155.  
  156. TOOBIGG:
  157.     tmp$ = MID$ (DRIVEFREE$, 1, 4)
  158.     sz$ = "Zu wenig Platz auf diesem Laufwerk. Es mⁿssen mindestens " + tmp$ + " KiloByte frei sein!"
  159.     i% =  DoMsgBox (sz$, "Ungenⁿgender Platz", 0)
  160.     UIPop 1
  161.     RETURN
  162.  
  163.  
  164. ASKQUIT:
  165.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  166.  
  167.     IF sz$ = "EXIT" THEN
  168.         UIPopAll
  169.         ERROR STFQUIT
  170.     ELSEIF sz$ = "REACTIVATE" THEN
  171.         GOTO ASKQUIT
  172.     ELSE
  173.         UIPop 1
  174.     END IF
  175.     RETURN
  176.  
  177.  
  178.  
  179. '**
  180. '** Purpose:
  181. '**     Builds the copy list and performs all installation operations.
  182. '** Arguments:
  183. '**     none.
  184. '** Returns:
  185. '**     none.
  186. '*************************************************************************
  187. SUB Install STATIC
  188.  
  189.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  190.     CreateDir DEST$, cmoNone
  191.     
  192.     OpenLogFile MakePath(DEST$, "Infopost.Log"), 0
  193.     WriteToLogFile ""
  194.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  195.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  196.     WriteToLogFile ""
  197.     WriteToLogFile "May have had to create the directory: " + DEST$
  198.     WriteToLogFile ""
  199.     
  200.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  201.  
  202.     CopyFilesInCopyList
  203.  
  204.     CreateProgmanGroup "Delphi /AdressManager", "", cmoNone
  205.     ShowProgmanGroup   "Delphi /AdressManager", 1, cmoNone
  206.  
  207.     CreateProgmanItem "Delphi /AdressManager", "InfoPost", MakePath(DEST$,"infopost.exe"), "", cmoOverwrite
  208.     CreateProgmanItem "Delphi /AdressManager", "List Manager - ▄ber InfoPost", MakePath(DEST$,"listmgrw.exe -m info.txt"), "", cmoOverwrite
  209.  
  210.     ModifyIniFile        
  211.     
  212.     RemoveFile MakePath(DEST$, "postsort.dt"), cmoNone
  213.     RemoveFile MakePath(DEST$, "postsort.nx"), cmoNone
  214.     
  215. END SUB
  216.  
  217. '**
  218. '** Purpose:
  219. '**     Deletes the old INFOPOST.INI File
  220. '**     Modifies the Infopost Ini File
  221. '**     Writes the correct path in the single sections
  222. '*************************************************************************
  223.  
  224. SUB ModifyIniFile STATIC
  225.  
  226.     IPINI$ = MakePath( GetWindowsDir(),"infopost.ini")
  227.     RemoveFile IPINI$, cmoForce
  228.     CreateIniKeyValue IPINI$, "Allgemein", "Plzbtdatei", MakePath(DEST$, "postsort"), cmoOverwrite
  229.  
  230. END SUB
  231.  
  232. '**
  233. '** Purpose:
  234. '**     Appends a file name to the end of a directory path,
  235. '**     inserting a backslash character as needed.
  236. '** Arguments:
  237. '**     szDir$  - full directory path (with optional ending "\")
  238. '**     szFile$ - filename to append to directory
  239. '** Returns:
  240. '**     Resulting fully qualified path name.
  241. '*************************************************************************
  242. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  243.     IF szDir$ = "" THEN
  244.         MakePath = szFile$
  245.     ELSEIF szFile$ = "" THEN
  246.         MakePath = szDir$
  247.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  248.         MakePath = szDir$ + szFile$
  249.     ELSE
  250.         MakePath = szDir$ + "\" + szFile$
  251.     END IF
  252. END FUNCTION
  253.  
  254.  
  255.  
  256.