home *** CD-ROM | disk | FTP | other *** search
/ PC Direct 1995 November / PCD1195.ISO / future / setup.ms_ / setup.ms
Encoding:
Text File  |  1995-08-02  |  13.4 KB  |  406 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit ALL
  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 GETBUBDIR     = 101
  13. CONST GETSPELLDIR   = 102
  14. CONST GETLOCKDIR    = 103
  15. CONST INSTALLED     = 200
  16. CONST ASKQUIT       = 300
  17. CONST DESTPATH      = 400
  18. CONST EXITFAILURE   = 500
  19. CONST EXITQUIT      = 600
  20. CONST EXITSUCCESS   = 700
  21. CONST OPTIONS       = 800
  22. CONST APPHELP       = 900
  23.  
  24. ''Bitmap ID
  25. CONST LOGO = 1
  26.  
  27. GLOBAL BUBEXEDEST$        ''Default destination directory.
  28. GLOBAL SPELLEXEDEST$        ''Default destination directory.
  29. GLOBAL LOCKEXEDEST$        ''Default destination directory.
  30. GLOBAL DLLDEST$        ''Default destination directory.
  31. GLOBAL WRIDEST$        ''Default destination directory.
  32. GLOBAL OPTCUR$      ''Option selection from option dialog.
  33.  
  34. GLOBAL BUBOPT$
  35. GLOBAL SPELLOPT$
  36. GLOBAL LOCKOPT$
  37.  
  38. DECLARE SUB InstallBubbleHelp
  39. DECLARE SUB InstallSpellWrite
  40. DECLARE SUB InstallFutureLock
  41.  
  42. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  43.  
  44.  
  45. INIT:
  46.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  47.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  48.  
  49.     SetBitmap CUIDLL$, LOGO
  50.     SetTitle "Setup"
  51.  
  52.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  53.     IF szInf$ = "" THEN
  54.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  55.     END IF
  56.     ReadInfFile szInf$
  57.  
  58.     OPTCUR$ = "1"
  59.     BUBEXEDEST$ = GetWindowsDir() + "FUTURE\BUBBLE"
  60.     SPELLEXEDEST$ = GetWindowsDir() + "FUTURE\SPELLWRI"
  61.     LOCKEXEDEST$ = GetWindowsDir() + "FUTURE\LOCK"
  62.     DLLDEST$ = GetWindowsSysDir()
  63.     WRIDEST$ = GetWindowsDir()
  64.  
  65. WELCOME:
  66.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  67.  
  68.     BUBOPT$ = GetSymbolValue("BubButtonChecked")
  69.     SPELLOPT$ = GetSymbolValue("SpellButtonChecked")
  70.     LOCKOPT$ = GetSymbolValue("LockButtonChecked")
  71.  
  72.     IF sz$ = "CONTINUE" THEN
  73.         UIPop 1
  74.     ELSE
  75.        GOSUB ASKQUIT
  76.        GOTO WELCOME
  77.    ENDIF
  78.  
  79.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  80.     AddSectionFilesToCopyList "CommonDLL", SrcDir$, DLLDEST$
  81.     AddSectionFilesToCopyList "CommonWRI", SrcDir$, WRIDEST$
  82.     CopyFilesInCopyList
  83.     ResetCopyList
  84.     CreateProgmanGroup "Future", "", cmoNone
  85.     ShowProgmanGroup  "Future", 1, cmoNone
  86.     CreateProgmanItem "Future", "Registration Form", WRIDEST$ + "future.wri", "", cmoOverwrite
  87.  
  88.     IF BUBOPT$ = "YES" THEN
  89.         GOSUB GETBUBDIR
  90.     ENDIF
  91.  
  92.     IF SPELLOPT$ = "YES" THEN
  93.         GOSUB GETSPELLDIR
  94.     ENDIF
  95.  
  96.     IF LOCKOPT$ = "YES" THEN
  97.         GOSUB GETLOCKDIR
  98.     ENDIF
  99.  
  100. QUIT:
  101.     ON ERROR GOTO ERRQUIT
  102.  
  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.  
  112.     END
  113.  
  114. ERRQUIT:
  115.     i% = DoMsgBox("Setup sources were corrupted, call Technical Support on 091-4910500!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  116.     END
  117.  
  118.  
  119.  
  120. ASKQUIT:
  121.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", APPHELP, "")
  122.  
  123.     IF sz$ = "EXIT" THEN
  124.         UIPopAll
  125.         ERROR STFQUIT
  126.     ELSEIF sz$ = "REACTIVATE" THEN
  127.         GOTO ASKQUIT
  128.     ELSE
  129.         UIPop 1
  130.     END IF
  131.     RETURN
  132.  
  133. GETBUBDIR:
  134.  
  135.     SetSymbolValue "EditTextIn", BUBEXEDEST$
  136.     sz$ = UIStartDlg(CUIDLL$, GETBUBDIR, "BubbleHelpProc", APPHELP, HELPPROC$)
  137.     BUBEXEDEST$ = GetSymbolValue("EditTextOut")
  138.  
  139.     IF sz$ = "CONTINUE" THEN
  140.  
  141.         UIPop 1
  142.  
  143.         drive$ = MID$(BUBEXEDEST$, 1, 1)
  144.         free& = GetFreeSpaceForDrive(drive$)
  145.  
  146.         IF free& > 1100000 THEN
  147.  
  148.             InstallBubbleHelp
  149.  
  150.         ELSE 
  151.  
  152.              i% = DoMsgBox("Insufficient disk space for installation, 1.1MB required.", "Warning", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  153.             GOTO QUITL1
  154.  
  155.         ENDIF
  156.  
  157.     ELSE
  158.  
  159.         GOSUB ASKQUIT
  160.         GOTO GETBUBDIR
  161.  
  162.     ENDIF
  163.  
  164. RETURN
  165.  
  166. GETSPELLDIR:
  167.  
  168.     SetSymbolValue "EditTextIn", SPELLEXEDEST$
  169.     sz$ = UIStartDlg(CUIDLL$, GETSPELLDIR, "SpellWriteProc", APPHELP, HELPPROC$)
  170.     SPELLEXEDEST$ = GetSymbolValue("EditTextOut")
  171.  
  172.     IF sz$ = "CONTINUE" THEN
  173.  
  174.         UIPop 1
  175.  
  176.         drive$ = MID$(SPELLEXEDEST$, 1, 1)
  177.         free& = GetFreeSpaceForDrive(drive$)
  178.  
  179.         IF free& > 1000000 THEN
  180.  
  181.             InstallSpellWrite
  182.  
  183.         ELSE 
  184.  
  185.             i% = DoMsgBox("Insufficient disk space for installation, 1MB required.", "Warning", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  186.             GOTO QUITL1
  187.  
  188.         ENDIF
  189.  
  190.     ELSE
  191.  
  192.         GOSUB ASKQUIT
  193.         GOTO GETSPELLDIR
  194.  
  195.     ENDIF
  196.  
  197. RETURN
  198.  
  199. GETLOCKDIR:
  200.  
  201.     SetSymbolValue "EditTextIn", LOCKEXEDEST$
  202.     sz$ = UIStartDlg(CUIDLL$, GETLOCKDIR, "FutureLockProc", APPHELP, HELPPROC$)
  203.     LOCKEXEDEST$ = GetSymbolValue("EditTextOut")
  204.  
  205.     IF sz$ = "CONTINUE" THEN
  206.  
  207.         UIPop 1
  208.  
  209.         drive$ = MID$(LOCKEXEDEST$, 1, 1)
  210.         free& = GetFreeSpaceForDrive(drive$)
  211.  
  212.         IF free& > 500000 THEN
  213.  
  214.             InstallFutureLock
  215.  
  216.         ELSE 
  217.  
  218.              i% = DoMsgBox("Insufficient disk space for installation, 500k required.", "Warning", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  219.             GOTO QUITL1
  220.  
  221.         ENDIF
  222.  
  223.     ELSE
  224.  
  225.         GOSUB ASKQUIT
  226.         GOTO GETLOCKDIR
  227.  
  228.     ENDIF
  229.  
  230. RETURN
  231.  
  232. '**********************************
  233. '**                                        **
  234. '**    BUBBLEHELP INSTALLATION        **
  235. '**                                        **
  236. '**********************************
  237.  
  238. SUB InstallBubbleHelp STATIC
  239.  
  240.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  241.     CreateDir BUBEXEDEST$, cmoNone
  242.     ResetCopyList
  243.     AddSectionFilesToCopyList "BubbleEXE", SrcDir$ + "BUBBLE", BUBEXEDEST$
  244.     AddSectionFilesToCopyList "BubbleDLL", SrcDir$ + "BUBBLE", DLLDEST$
  245.     CopyFilesInCopyList
  246.  
  247.     ini$ = MakePath(GetWindowsDir(), "FUTURE.INI")
  248.     CreateProgmanGroup "Future", "", cmoNone
  249.     ShowProgmanGroup  "Future", 1, cmoNone
  250.     CreateProgmanItem "Future", "BubbleHelp", BUBEXEDEST$ + "\bubble.exe", "", cmoOverwrite
  251.     CreateProgmanItem "Startup", "BubbleHelp", BUBEXEDEST$ + "\bubble.exe", "", cmoOverwrite
  252.  
  253.     ' Add bubble help files in ini
  254.  
  255.     CreateIniKeyValue ini$, "BubbleHelp", "ShowStartup",     "0",     cmoOverwrite
  256.     CreateIniKeyValue ini$, "BubbleHelp", "path",                 BUBEXEDEST$,     cmoOverwrite
  257.  
  258.     CreateIniKeyValue ini$, "BubbleHelp", "MSWRITE_MENU",     BUBEXEDEST$ + "\WRITEBUB.HLP",     cmoOverwrite
  259.     CreateIniKeyValue ini$, "BubbleHelp", "pbParent",             BUBEXEDEST$ + "\PBRUSBUB.HLP",     cmoOverwrite
  260.     CreateIniKeyValue ini$, "BubbleHelp", "Notepad",             BUBEXEDEST$ + "\NOTEPBUB.HLP",     cmoOverwrite
  261.     CreateIniKeyValue ini$, "BubbleHelp", "Clock",                 BUBEXEDEST$ + "\CLOCKBUB.HLP",     cmoOverwrite
  262.     CreateIniKeyValue ini$, "BubbleHelp", "Progman",             BUBEXEDEST$ + "\PROGMBUB.HLP",     cmoOverwrite
  263.     CreateIniKeyValue ini$, "BubbleHelp", "#32769",             BUBEXEDEST$ + "\DESKTBUB.HLP",     cmoOverwrite
  264.     CreateIniKeyValue ini$, "BubbleHelp", "tty",                 BUBEXEDEST$ + "\DOSBUB.HLP",         cmoOverwrite
  265.     CreateIniKeyValue ini$, "BubbleHelp", "CalWndMain",         BUBEXEDEST$ + "\CALENBUB.HLP",     cmoOverwrite
  266.     CreateIniKeyValue ini$, "BubbleHelp", "Cardfile",             BUBEXEDEST$ + "\CARDFBUB.HLP",     cmoOverwrite
  267.     CreateIniKeyValue ini$, "BubbleHelp", "Recorder",             BUBEXEDEST$ + "\RECORBUB.HLP",     cmoOverwrite
  268.     CreateIniKeyValue ini$, "BubbleHelp", "Terminal",             BUBEXEDEST$ + "\TERMIBUB.HLP",     cmoOverwrite
  269.     CreateIniKeyValue ini$, "BubbleHelp", "AppClass",             BUBEXEDEST$ + "\PACKABUB.HLP",     cmoOverwrite
  270.     CreateIniKeyValue ini$, "BubbleHelp", "MPlayer",             BUBEXEDEST$ + "\MPLAYBUB.HLP",     cmoOverwrite
  271.     CreateIniKeyValue ini$, "BubbleHelp", "SoundRec",             BUBEXEDEST$ + "\SOUNDBUB.HLP",     cmoOverwrite
  272.     CreateIniKeyValue ini$, "BubbleHelp", "SciCalc",             BUBEXEDEST$ + "\CALCBUB.HLP",     cmoOverwrite
  273.     CreateIniKeyValue ini$, "BubbleHelp", "CtlPanelClass",    BUBEXEDEST$ + "\CONTRBUB.HLP",     cmoOverwrite
  274.     CreateIniKeyValue ini$, "BubbleHelp", "Pif",                 BUBEXEDEST$ + "\PIFEDBUB.HLP",     cmoOverwrite
  275.     CreateIniKeyValue ini$, "BubbleHelp", "Solitaire",         BUBEXEDEST$ + "\SOLBUB.HLP",          cmoOverwrite
  276.     CreateIniKeyValue ini$, "BubbleHelp", "Minesweeper",         BUBEXEDEST$ + "\WINMIBUB.HLP",     cmoOverwrite
  277.     CreateIniKeyValue ini$, "BubbleHelp", "#32770",             BUBEXEDEST$ + "\TASKMBUB.HLP",     cmoOverwrite
  278.     CreateIniKeyValue ini$, "BubbleHelp", "~FSDSpellWrite",     BUBEXEDEST$ + "\SPELLBUB.HLP",     cmoOverwrite
  279.     CreateIniKeyValue ini$, "BubbleHelp", "MyDlgClass",         BUBEXEDEST$ + "\CHARMBUB.HLP",     cmoOverwrite
  280.     CreateIniKeyValue ini$, "BubbleHelp", "~FSDBubbleHelp",     BUBEXEDEST$ + "\BUBHEBUB.HLP",     cmoOverwrite
  281.     CreateIniKeyValue ini$, "BubbleHelp", "mydlg",                 BUBEXEDEST$ + "\WINSEBUB.HLP",     cmoOverwrite
  282.     CreateIniKeyValue ini$, "BubbleHelp", "ClipBookWClass",     BUBEXEDEST$ + "\CLIPB311.HLP",     cmoOverwrite
  283.     CreateIniKeyValue ini$, "BubbleHelp", "Clipboard",         BUBEXEDEST$ + "\CLIPBBUB.HLP",     cmoOverwrite
  284.     CreateIniKeyValue ini$, "BubbleHelp", "WFS_Frame",         BUBEXEDEST$ + "\WINFIBUB.HLP",     cmoOverwrite
  285.     CreateIniKeyValue ini$, "BubbleHelp", "PrintManager",     BUBEXEDEST$ + "\PRINTBUB.HLP",     cmoOverwrite
  286.  
  287.     ' Take out SpellWrite bubbles
  288.  
  289.     CreateIniKeyValue ini$, "SpellWrite", "Bubble",             "0",     cmoNone
  290.  
  291.     ' Call startup proc
  292.  
  293.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  294.    sz$ = UIStartDlg(CUIDLL$, INSTALLED, "BubInstalledProc", APPHELP, HELPPROC$)
  295.  
  296.     UIPop 1
  297.  
  298.     i% = DoMsgBox("BubbleHelp is now installed on your computer", "Setup", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  299.  
  300. END SUB
  301.  
  302. '**********************************
  303. '**                                        **
  304. '**    SPELLWRITE INSTALLATION        **
  305. '**                                        **
  306. '**********************************
  307.  
  308. SUB InstallSpellWrite STATIC
  309.  
  310.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  311.     CreateDir SPELLEXEDEST$, cmoNone
  312.     ResetCopyList
  313.     AddSectionFilesToCopyList "SpellWriteEXE", SrcDir$ + "SPELLWRI", SPELLEXEDEST$
  314.     AddSectionFilesToCopyList "SpellWriteDLL", SrcDir$ + "SPELLWRI", DLLDEST$
  315.     CopyFilesInCopyList
  316.  
  317.    ini$ = MakePath(GetWindowsDir(), "FUTURE.INI")
  318.  
  319.    CreateProgmanGroup "Future", "", cmoNone
  320.    ShowProgmanGroup  "Future", 1, cmoNone
  321.    CreateProgmanItem "Startup", "SpellWrite", SPELLEXEDEST$ + "\spellwri.exe", "", cmoOverwrite
  322.    CreateProgmanItem "Future", "SpellWrite", SPELLEXEDEST$ + "\spellwri.exe", "", cmoOverwrite
  323.    CreateIniKeyValue "WIN.INI", "sounds", "SpellWrite_Correct", ",Spelling correct", cmoNone
  324.    CreateIniKeyValue "WIN.INI", "sounds", "SpellWrite_Mistake", ",Spelling incorrect", cmoNone
  325.  
  326.     CreateIniKeyValue ini$, "SpellWrite", "path", SPELLEXEDEST$,  cmoOverwrite
  327.     CreateIniKeyValue ini$, "SpellWrite", "Custom", SPELLEXEDEST$ + "\FSD_CUST.DCT",  cmoOverwrite
  328.     CreateIniKeyValue ini$, "SpellWrite", "OnlyAddToCustomDict", "0",  cmoOverwrite
  329.     CreateIniKeyValue ini$, "SpellWrite", "LoadWrite", "0",  cmoOverwrite
  330.     CreateIniKeyValue ini$, "BubbleHelp", "MSWRITE_MENU",     SPELLEXEDEST$ + "\WRITEBUB.HLP",     cmoOverwrite
  331.     CreateIniKeyValue ini$, "BubbleHelp", "~FSDSpellWrite",     SPELLEXEDEST$ + "\SPELLBUB.HLP",     cmoOverwrite
  332.    CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  333.    sz$ = UIStartDlg(CUIDLL$, INSTALLED, "SpellInstalledProc", APPHELP, INSTALLEDPROC$)
  334.  
  335.     UIPop 1
  336.  
  337.     i% = DoMsgBox("SpellWrite is now installed on your computer", "Setup", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  338.  
  339. END SUB
  340.  
  341. '**********************************
  342. '**                                        **
  343. '**    FUTURELOCK INSTALLATION        **
  344. '**                                        **
  345. '**********************************
  346.  
  347. SUB InstallFutureLock STATIC
  348.  
  349.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  350.     CreateDir LOCKEXEDEST$, cmoNone
  351.     ResetCopyList
  352.     AddSectionFilesToCopyList "FutureLockEXE", SrcDir$ + "FUTLOCK", LOCKEXEDEST$
  353.     AddSectionFilesToCopyList "FutureLockDLL", SrcDir$ + "FUTLOCK", DLLDEST$
  354.     CopyFilesInCopyList
  355.  
  356.     iniFut$ = MakePath(GetWindowsDir(), "FUTURE.INI")
  357.     ini$ = MakePath(GetWindowsDir(), "FUTLOCK.INI")
  358.     iniSys$ = MakePath(GetWindowsDir(), "SYSTEM.INI")
  359.  
  360.     CreateProgmanGroup "Future", "", cmoNone
  361.     ShowProgmanGroup  "Future", 1, cmoNone
  362.     CreateProgmanItem "Future", "FutureLock", LOCKEXEDEST$ + "\futlock.exe", "", cmoOverwrite
  363.     CreateProgmanItem "Future", "FutureLock Uninstall", LOCKEXEDEST$ + "\uninstal.exe", "", cmoOverwrite
  364.  
  365.     CreateIniKeyValue ini$, "FutureLock", "path", LOCKEXEDEST$,  cmoOverwrite
  366.     CreateIniKeyValue iniFut$, "BubbleHelp", "~FSDFutureLockSetup",     LOCKEXEDEST$ + "\FSDLKBUB.HLP",     cmoOverwrite
  367.     CreateIniKeyValue iniFut$, "BubbleHelp", "~FSDFutureLockShell",     LOCKEXEDEST$ + "\FSDLKBUB.HLP",     cmoOverwrite
  368.     CreateIniKeyValue iniFut$, "BubbleHelp", "~FSDFutureLockUninstall",     LOCKEXEDEST$ + "\FSDLKBUB.HLP",     cmoOverwrite
  369.  
  370.     szShellIniLine$ = GetIniKeyString(iniSys$, "boot", "shell")
  371.  
  372.     IF szShellIniLine$ <> "" THEN
  373.         CreateIniKeyValue ini$, "FutureLock", "shell", szShellIniLine$,  cmoOverwrite
  374.     ELSE
  375.         CreateIniKeyValue ini$, "FutureLock", "shell", LOCKEXEDEST$ + "\futshell.exe",  cmoOverwrite
  376.     END IF
  377.  
  378.     CreateIniKeyValue iniSys$, "boot", "shell", LOCKEXEDEST$ + "\futshell.exe",  cmoOverwrite
  379.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  380.     sz$ = UIStartDlg(CUIDLL$, INSTALLED, "LockInstalledProc", APPHELP, INSTALLEDPROC$)
  381.  
  382. END SUB
  383.  
  384. '**
  385. '** Purpose:
  386. '**     Appends a file name to the end of a directory path,
  387. '**     inserting a backslash character as needed.
  388. '** Arguments:
  389. '**     szDir$  - full directory path (with optional ending "\")
  390. '**     szFile$ - filename to append to directory
  391. '** Returns:
  392. '**     Resulting fully qualified path name.
  393. '*************************************************************************
  394. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  395.     IF szDir$ = "" THEN
  396.         MakePath = szFile$
  397.     ELSEIF szFile$ = "" THEN
  398.         MakePath = szDir$
  399.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  400.         MakePath = szDir$ + szFile$
  401.     ELSE
  402.         MakePath = szDir$ + "\" + szFile$
  403.     END IF
  404. END FUNCTION
  405.  
  406.