home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 March / CHIP Mart 1997.iso / multimed / NOCTURN / NOCT11.EXE / NOCTSCR.MST < prev    next >
Encoding:
Text File  |  1995-09-16  |  6.5 KB  |  249 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit
  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 BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23. '' Beginning of code needed for no title-bar Window
  24. CONST WS_VISIBLE=&H10000000
  25. CONST WS_BORDER =&H00800000
  26. CONST WS_CLIPCHILDREN = &H02000000
  27. CONST GWL_STYLE =-16
  28. CONST SWP_DRAWFRAME = 32
  29. CONST SWP_NOACTIVATE = 16
  30. CONST SWP_NOMOVE = 2
  31. CONST SWP_NOSIZE = 1
  32. CONST SWP_NOZORDER = 4
  33. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  34. DECLARE FUNCTION SetWindowPos LIB "user.exe" (hWnd%, hWndAfter%, x%, y%, cx%, cy%, Flags%) AS INTEGER
  35. CONST SW_SHOWMAXIMIZED=3
  36. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  37. '' end of no title-bar code.
  38.  
  39.  
  40. GLOBAL DEST$        ''Default destination directory.
  41. GLOBAL OPTCUR$      ''Option selection from option dialog.
  42.  
  43. DECLARE SUB Install
  44. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  45.  
  46.  
  47. INIT:
  48.  
  49. '' The following three lines setup up a maximized, no title-bar Window
  50. hWnd%=HwndFrame()
  51. i1&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  52. i2%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  53.  
  54.  
  55.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  56.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  57.     
  58.     SetBitmap CUIDLL$, LOGO
  59.     SetTitle "Nocturnal Omissions Installation"
  60.  
  61.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  62.     IF szInf$ = "" THEN
  63.     szInf$ = GetSymbolValue("STF_CWDDIR") + "NOCTSCR.INF"
  64.     END IF
  65.     ReadInfFile szInf$
  66.  
  67.     OPTCUR$ = "1"
  68.     DEST$ = "C:\WINDOWS"
  69.  
  70. '$IFDEF DEBUG
  71.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  72.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  73.     IF IsDriveValid(WinDrive$) = 0 THEN
  74.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  75.     GOTO QUIT
  76.     END IF
  77. '$ENDIF ''DEBUG
  78.  
  79.  
  80. WELCOME:
  81.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  82.     IF sz$ = "CONTINUE" THEN
  83.     UIPop 1
  84.     ELSE
  85.     GOSUB ASKQUIT
  86.     GOTO WELCOME
  87.     END IF
  88.  
  89.  
  90. OPTION:
  91.     SetSymbolValue "RadioDefault", OPTCUR$
  92. OPTL1:
  93.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  94.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  95.  
  96.     IF sz$ = "CONTINUE" THEN
  97.     UIPop(1)
  98.     ELSEIF sz$ = "REACTIVATE" THEN
  99.     GOTO OPTL1
  100.     ELSE
  101.     GOSUB ASKQUIT
  102.     GOTO OPTION
  103.     END IF
  104.  
  105.  
  106. GETPATH:
  107.     SetSymbolValue "EditTextIn", DEST$
  108.     SetSymbolValue "EditFocus", "END"
  109. GETPATHL1:
  110.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  111.     DEST$ = GetSymbolValue("EditTextOut")
  112.  
  113.     IF sz$ = "CONTINUE" THEN
  114.     IF IsDirWritable(DEST$) = 0 THEN
  115.         GOSUB BADPATH
  116.         GOTO GETPATHL1
  117.     END IF
  118.     UIPop 1
  119.     ELSEIF sz$ = "REACTIVATE" THEN
  120.     GOTO GETPATHL1
  121.     ELSEIF sz$ = "BACK" THEN
  122.     UIPop 1
  123.     GOTO OPTION
  124.     ELSE
  125.     GOSUB ASKQUIT
  126.     GOTO GETPATH
  127.     END IF
  128.  
  129.  
  130.     Install
  131.  
  132.  
  133. QUIT:
  134.     ON ERROR GOTO ERRQUIT
  135.  
  136.     IF ERR = 0 THEN
  137.     dlg% = EXITSUCCESS
  138.     ELSEIF ERR = STFQUIT THEN
  139.     dlg% = EXITQUIT
  140.     ELSE
  141.     dlg% = EXITFAILURE
  142.     END IF
  143. QUITL1:
  144.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  145.     IF sz$ = "REACTIVATE" THEN
  146.     GOTO QUITL1
  147.     END IF
  148.     UIPop 1
  149.  
  150.     END
  151.  
  152. ERRQUIT:
  153.     i% = DoMsgBox("Setup sources were corrupted, call 602-795-5766!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  154.     END
  155.  
  156.  
  157.  
  158. BADPATH:
  159.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  160.     IF sz$ = "REACTIVATE" THEN
  161.     GOTO BADPATH
  162.     END IF
  163.     UIPop 1
  164.     RETURN
  165.  
  166.  
  167.  
  168. ASKQUIT:
  169.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  170.  
  171.     IF sz$ = "EXIT" THEN
  172.     UIPopAll
  173.     ERROR STFQUIT
  174.     ELSEIF sz$ = "REACTIVATE" THEN
  175.     GOTO ASKQUIT
  176.     ELSE
  177.     UIPop 1
  178.     END IF
  179.     RETURN
  180.  
  181.  
  182.  
  183. '**
  184. '** Purpose:
  185. '**     Builds the copy list and performs all installation operations.
  186. '** Arguments:
  187. '**     none.
  188. '** Returns:
  189. '**     none.
  190. '*************************************************************************
  191. SUB Install STATIC
  192.  
  193.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  194.     CreateDir DEST$, cmoNone
  195.  
  196.     OpenLogFile MakePath(DEST$, "NOCTSCR.TXT"), 0
  197.     WriteToLogFile ""
  198.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  199.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  200.     WriteToLogFile ""
  201.     WriteToLogFile "May have had to create the directory: " + DEST$
  202.     WriteToLogFile ""
  203.  
  204.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  205. '    AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  206.     CopyFilesInCopyList
  207.  
  208.  '   ini$ = MakePath(DEST$, "DEMO.INI")
  209.  '  CreateIniKeyValue "WIN.INI", "MSSetup Sample 1", "Option", OPTCUR$, cmoNone
  210.  ' CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone
  211.  '   CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone
  212.  '   CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone
  213.  
  214.  '   CreateProgmanGroup "MSSetup Sample 1", "", cmoNone
  215.  '   ShowProgmanGroup  "MSSetup Sample 1", 1, cmoNone
  216.  '   CreateProgmanItem "MSSetup Sample 1", "dialogs", "dlgedit.exe "+MakePath(DEST$,"dialogs.res"), "", cmoOverwrite
  217.  '   CreateProgmanItem "MSSetup Sample 1", "dlgprocs.c", "notepad.exe "+MakePath(DEST$,"dlgprocs.c"), "", cmoOverwrite
  218.  
  219.  '   AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  220.  
  221.     CloseLogFile
  222.  
  223. END SUB
  224.  
  225.  
  226.  
  227. '**
  228. '** Purpose:
  229. '**     Appends a file name to the end of a directory path,
  230. '**     inserting a backslash character as needed.
  231. '** Arguments:
  232. '**     szDir$  - full directory path (with optional ending "\")
  233. '**     szFile$ - filename to append to directory
  234. '** Returns:
  235. '**     Resulting fully qualified path name.
  236. '*************************************************************************
  237. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  238.     IF szDir$ = "" THEN
  239.     MakePath = szFile$
  240.     ELSEIF szFile$ = "" THEN
  241.     MakePath = szDir$
  242.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  243.     MakePath = szDir$ + szFile$
  244.     ELSE
  245.     MakePath = szDir$ + "\" + szFile$
  246.     END IF
  247. END FUNCTION
  248.  
  249.