home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 January / VPR9701A.ISO / TELSV / TELESV.MST < prev    next >
Text File  |  1996-10-03  |  9KB  |  317 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 OPTIONS1       = 800
  18. CONST OPTIONS2       = 810
  19. CONST APPHELP       = 900
  20. CONST CUSTINST      = 6200
  21. CONST BADPATH       = 6400
  22.  
  23. ''Screen Saver Active
  24. CONST SPI_SETSCREENSAVEACTIVE=17
  25. CONST SPI_SETSCREENSAVETIMEOUT=15
  26. CONST SPIF_UPDATEINIFILE=1
  27. CONST SPIF_SENDWININICHAGE=2
  28. DECLARE FUNCTION SystemParametersInfo LIB "user.exe" (uAction%, uParam%, lpvParam&, fuWinIni%) AS INTEGER
  29.  
  30. ''WindowSize
  31. CONST SW_SHOWMAXIMIZED = 3
  32. DECLARE FUNCTION ShowWindow    LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  33.  
  34. CONST LOGO = 1
  35.  
  36. GLOBAL DEST$        ''Default destination directory.
  37. GLOBAL OPTCUR$      ''Option selection from option dialog
  38. GLOBAL DRIVETEXT$   '' Dest Path
  39.  
  40. DECLARE SUB Install
  41. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  42.  
  43.  
  44. INIT:
  45.     hWnd% = HwndFrame()
  46.     junk% = ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  47.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  48.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  49.  
  50.     SetBitmap CUIDLL$, LOGO
  51.     SetTitle "Internet TELESAVER Setup"
  52.  
  53.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  54.     IF szInf$ = "" THEN
  55.         szInf$ = GetSymbolValue("STF_CWDDIR") + "telesv.INF"
  56.     END IF
  57.     ReadInfFile szInf$
  58.  
  59.     OPTCUR$ = "1"
  60.     DEST$ = GetWindowsDir()
  61.     DRIVETEXT$ = "DriveStatusText"
  62.     FOR i% = 1 TO 7 STEP 1
  63.         AddListItem DRIVETEXT$,""
  64.     NEXT i%
  65.     ReplaceListItem DRIVETEXT$,7,DEST$
  66.  
  67. '$IFDEF DEBUG
  68.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  69.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  70.     IF IsDriveValid(WinDrive$) = 0 THEN
  71.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  72.         GOTO QUIT
  73.     END IF
  74. '$ENDIF ''DEBUG
  75.  
  76.  
  77. ''WELCOME:
  78. ''    sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  79. ''    IF sz$ = "CONTINUE" THEN
  80. ''        UIPop 1
  81. ''    ELSE
  82. ''        GOSUB ASKQUIT
  83. ''        GOTO WELCOME
  84. ''    END IF
  85.  
  86.  
  87. ''CUSTINST:
  88. ''    sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  89.  
  90. ''    IF sz$ = "CONTINUE" THEN
  91.         ''Install only if it will fit.
  92.         ''FOR i% = 1 TO 3 STEP 1
  93.         ''    IF GetListItem(BIGLIST$, i%) <> "" THEN
  94.         ''        GOSUB TOOBIG
  95.         ''        GOTO CUSTINST
  96.         ''    END IF
  97.         ''NEXT i%
  98. ''        UIPop 1
  99.         ''GOTO INSTALL
  100. ''    ELSEIF sz$ = "REACTIVATE" THEN
  101.         ''RecalcPath
  102.         ''SetDriveStatus
  103.         ''GOTO CUSTINST
  104. ''        GOTO OPTL1
  105. ''    ELSE
  106. ''        GOSUB ASKQUIT
  107. ''        GOTO CUSTINST
  108. ''    END IF
  109.  
  110. ''OPTION:
  111. ''    SetSymbolValue "RadioDefault", OPTCUR$
  112. OPTL1:
  113.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  114.  
  115.     ''OPTCUR$ = GetSymbolValue("ButtonChecked")
  116.  
  117.     IF sz$ = "CONTINUE" THEN
  118.         UIPop(1)
  119.     ELSEIF sz$ = "REACTIVATE" THEN
  120.         GOTO OPTL1
  121.     ELSE
  122.         GOSUB ASKQUIT
  123.         GOTO OPTL1
  124.     END IF
  125.  
  126.  
  127. ''GETPATH:
  128. ''    SetSymbolValue "EditTextIn", DEST$
  129. ''    SetSymbolValue "EditFocus", "END"
  130. ''GETPATHL1:
  131. ''    sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  132. ''    DEST$ = GetSymbolValue("EditTextOut")
  133.  
  134. ''    IF sz$ = "CONTINUE" THEN
  135. ''        IF IsDirWritable(DEST$) = 0 THEN
  136. ''            GOSUB BADPATH
  137. ''            GOTO GETPATHL1
  138. ''        END IF
  139. ''        UIPop 1
  140. ''    ELSEIF sz$ = "REACTIVATE" THEN
  141. ''        GOTO GETPATHL1
  142. ''    ELSEIF sz$ = "BACK" THEN
  143. ''        UIPop 1
  144. ''        GOTO OPTION
  145. ''    ELSE
  146. ''        GOSUB ASKQUIT
  147. ''        GOTO GETPATH
  148. ''    END IF
  149.  
  150.  
  151.     Install
  152.  
  153.  
  154. OPTION1:
  155.     SetSymbolValue "RadioDefault", OPTCUR$
  156. SELECT1:
  157.     sz$ = UIStartDlg(CUIDLL$, OPTIONS1, "FRadioDlgProc", APPHELP, HELPPROC$)
  158.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  159.     Connect$ = STR$(VAL(OPTCUR$)-1)
  160.  
  161.     IF sz$ = "CONTINUE" THEN
  162.     ini$ = MakePath(DEST$,"teletext.ini")
  163.     CreateIniKeyValue ini$, "TELESV", "接続", Connect$, cmoNone
  164.     OPTCUR$ = "1"
  165.         UIPop(1)
  166.     ELSEIF sz$ = "REACTIVATE" THEN
  167.         GOTO SELECT1
  168.     ''ELSE
  169.     ''    GOSUB ASKQUIT
  170.     ''    GOTO OPTION
  171.     END IF
  172.  
  173. OPTION2:
  174.     SetSymbolValue "RadioDefault", OPTCUR$
  175. SELECT2:
  176.     sz$ = UIStartDlg(CUIDLL$, OPTIONS2, "FRadioDlgProc", APPHELP, HELPPROC$)
  177.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  178.  
  179.     IF sz$ = "CONTINUE" THEN
  180.     ini$ = MakePath(DEST$,"teletext.ini")
  181.     IF OPTCUR$ = "1" THEN
  182.         Brouse$ = "NETSCAPE"
  183.     ELSE
  184.         Brouse$ = "IEXPLORE"
  185.     END IF
  186.     CreateIniKeyValue ini$, "TELESV", "起動ブラウザ", Brouse$, cmoNone
  187.         UIPop(1)
  188.     ELSEIF sz$ = "REACTIVATE" THEN
  189.         GOTO SELECT2
  190.     ''ELSE
  191.     ''    GOSUB ASKQUIT
  192.     ''    GOTO OPTION
  193.     END IF
  194.  
  195. QUIT:
  196.     ON ERROR GOTO ERRQUIT
  197.  
  198.     IF ERR = 0 THEN
  199.         dlg% = EXITSUCCESS
  200.     ELSEIF ERR = STFQUIT THEN
  201.         dlg% = EXITQUIT
  202.     ELSE
  203.         dlg% = EXITFAILURE
  204.     END IF
  205. QUITL1:
  206.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  207.     IF sz$ = "REACTIVATE" THEN
  208.         GOTO QUITL1
  209.     END IF
  210.     UIPop 1
  211.  
  212.     END
  213.  
  214. ERRQUIT:
  215.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  216.     END
  217.  
  218.  
  219.  
  220. BADPATH:
  221.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  222.     IF sz$ = "REACTIVATE" THEN
  223.         GOTO BADPATH
  224.     END IF
  225.     UIPop 1
  226.     RETURN
  227.  
  228.  
  229.  
  230. ASKQUIT:
  231.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  232.  
  233.     IF sz$ = "EXIT" THEN
  234.         UIPopAll
  235.         ERROR STFQUIT
  236.     ELSEIF sz$ = "REACTIVATE" THEN
  237.         GOTO ASKQUIT
  238.     ELSE
  239.         UIPop 1
  240.     END IF
  241.     RETURN
  242.  
  243.  
  244.  
  245. '**
  246. '** Purpose:
  247. '**     Builds the copy list and performs all installation operations.
  248. '** Arguments:
  249. '**     none.
  250. '** Returns:
  251. '**     none.
  252. '*************************************************************************
  253. SUB Install STATIC
  254.  
  255.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  256.     Fname$ = "telesv.scr"
  257.     ''CreateDir DEST$, cmoNone
  258.  
  259.     ''OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  260.     ''WriteToLogFile ""
  261.     ''WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  262.     ''WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  263.     ''WriteToLogFile ""
  264.     ''WriteToLogFile "May have had to create the directory: " + DEST$
  265.     ''WriteToLogFile ""
  266.  
  267.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  268.     ''AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  269.     CopyFilesInCopyList
  270.  
  271.     ''Activate TELESAVER
  272.     CreateIniKeyValue GetWindowsDir()+"system.ini", "boot", "SCRNSAVE.EXE", GetWindowsSysDir()+Fname$, cmoOverwrite
  273.     i%=SystemParametersInfo (SPI_SETSCREENSAVETIMEOUT, 600, 0, SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE)
  274.     i%=SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1, 0, SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE)
  275.  
  276.     ''ini$ = MakePath(DEST$, "DEMO.INI")
  277.     ''CreateIniKeyValue "WIN.INI", "MSSetup Sample 1", "Option", OPTCUR$, cmoNone
  278.     ''CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone
  279.     ''CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone
  280.     ''CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone
  281.  
  282.     ''CreateProgmanGroup "MSSetup Sample 1", "", cmoNone
  283.     ''ShowProgmanGroup  "MSSetup Sample 1", 1, cmoNone
  284.     ''CreateProgmanItem "MSSetup Sample 1", "dialogs", "dlgedit.exe "+MakePath(DEST$,"dialogs.res"), "", cmoOverwrite
  285.     ''CreateProgmanItem "MSSetup Sample 1", "dlgprocs.c", "notepad.exe "+MakePath(DEST$,"dlgprocs.c"), "", cmoOverwrite
  286.  
  287.     ''AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  288.  
  289.     ''CloseLogFile
  290.  
  291. END SUB
  292.  
  293.  
  294.  
  295. '**
  296. '** Purpose:
  297. '**     Appends a file name to the end of a directory path,
  298. '**     inserting a backslash character as needed.
  299. '** Arguments:
  300. '**     szDir$  - full directory path (with optional ending "\")
  301. '**     szFile$ - filename to append to directory
  302. '** Returns:
  303. '**     Resulting fully qualified path name.
  304. '*************************************************************************
  305. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  306.     IF szDir$ = "" THEN
  307.         MakePath = szFile$
  308.     ELSEIF szFile$ = "" THEN
  309.         MakePath = szDir$
  310.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  311.         MakePath = szDir$ + szFile$
  312.     ELSE
  313.         MakePath = szDir$ + "\" + szFile$
  314.     END IF
  315. END FUNCTION
  316.  
  317.