home *** CD-ROM | disk | FTP | other *** search
/ PC Review 1995 May / PCR11.ISO / checkit / setup.mst < prev    next >
Encoding:
Text File  |  1994-02-09  |  8.4 KB  |  301 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 2
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'     
  9. '$INCLUDE 'msregdb.inc'
  10.  
  11. ''---Dialog ID's
  12. CONST WELCOME        = 100       
  13. CONST EXITFAILURE    = 400
  14. CONST EXITSUCCESS    = 500
  15. CONST APPHELP        = 600
  16. CONST ASKQUIT        = 700
  17. CONST DESTPATH       = 800
  18. CONST TOOBIG         = 900
  19. CONST BADPATH        = 1000
  20. CONST FILEEXIST      = 1300   
  21.       
  22.       
  23. ''---File Types
  24. CONST AppFiles     = 1
  25.  
  26. GLOBAL SOURCE$      ''Source drive/directory
  27. GLOBAL SDRIVE%
  28. GLOBAL DEST$        ''Default destination directory.
  29. GLOBAL OPDEST$      ''Default destination directory.
  30. GLOBAL SUB1$        ''SubDir
  31. GLOBAL SUB2$        ''SubDir
  32. GLOBAL SUB3$        ''SubDir
  33. GLOBAL SUB4$        ''SubDir
  34. GLOBAL SUB5$        ''SubDir 
  35. GLOBAL WINDRIVE$    ''Windows drive letter. 
  36. GLOBAL WINDIR$      ''Windows DIR.
  37.  
  38.  
  39. ''---
  40. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  41. DECLARE FUNCTION ShellExecute% Lib "SHELL.DLL" (hwnd%, szOp$, szFile$, szParms$, szDir$, show%)
  42.  
  43.  
  44. INIT:
  45.      CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  46.      HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  47.      SetTitle "CheckIt Analyst Demo"
  48.      
  49.      szInf$ = GetSymbolValue("STF_SRCINFPATH")
  50.      IF szInf$ = "" THEN
  51.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  52.      END IF    
  53.      ReadInfFile szInf$
  54.                           
  55.      ''---Set up Source, Windows, and Dest paths
  56.      SOURCE$ = GetSymbolValue ("STF_SRCDIR")
  57.      SDRIVE% = ASC(ucase$(SOURCE$)) - ASC("A") + 1
  58.      WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  59.      WINDIR$ = GetWindowsDir()
  60.      OPDEST$ = "D:\"        
  61.      
  62.      DEST$ = WINDRIVE$ + ":\CKDEMO"
  63.      SUB1$ = DEST$ + "\ADVISOR"
  64.      SUB2$ = DEST$ + "\SOFTWARE"        
  65.      SUB3$ = DEST$ + "\PRF"
  66.      SUB4$ = DEST$ + "\REPORTS"
  67.      SUB5$ = DEST$ + "\DATA"    
  68.   
  69. '\*
  70. ' *
  71. ' *      Show the Introduction screen
  72. ' *
  73. ' */
  74. WELCOME:
  75.      IF WINMAJOR% = 3 and WINMINOR% = 00  THEN
  76.         i% = DoMsgBox("This program requires Windows version 3.1", "Error - 01", IDOK)            
  77.         END
  78.     ENDIF                                                            
  79.  
  80.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FCustInstDlgProc", 0, "")    
  81.      IF sz$ = "CONTINUE" THEN
  82.         UIPop 1    
  83.         GOTO GETPATH
  84.      ELSEIF sz$ = "BTN1" THEN
  85.           j% = ShellExecute(hMainWnd, "open", SOURCE$+"README.WRI", "", "", 1)
  86.           IF j% < 32 THEN
  87.             GOTO ERRQUIT
  88.           END IF     
  89.         GOTO WELCOME
  90.     ELSEIF sz$ = "EXIT" THEN
  91.         UIPop 1     
  92.           GOSUB ASKQUIT
  93.           GOTO WELCOME
  94.      ELSE
  95.         GOTO WELCOME            
  96.      END IF   
  97.                  
  98.  
  99. GETPATH:
  100.      SetSymbolValue "EditTextIn", DEST$
  101.      SetSymbolValue "EditFocus", "END"
  102. GETPATHL1:
  103.      sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  104.      IF sz$ = "CONTINUE" THEN
  105.           olddest$ = DEST$
  106.           DEST$ = GetSymbolValue("EditTextOut")
  107.  
  108.  
  109.           ''Validate new path.
  110.           IF IsDirWritable(DEST$) = 0 THEN
  111.             GOSUB BADPATH
  112.             GOTO GETPATHL1
  113.           END IF
  114.           UIPop 1             
  115.  
  116.           ''Validate old file Exist.              
  117.           i% = DoesFileExist(DEST$+"\CKANLYST.EXE",femExists)
  118.           IF i% = 1 THEN
  119.             UIPop 1
  120.             sz$ = UIStartDlg(CUIDLL$, FILEEXIST, "FCustInstDlgProc", 0, "")
  121.             IF sz$ = "EXIT" THEN    
  122.                 UIPop 1             
  123.                 GOTO GETPATHL1          
  124.              END IF
  125.           ENDIF       
  126.  
  127.           olddest$ = ""
  128.           GOTO INSTALL
  129.           
  130.      ELSEIF sz$ = "REACTIVATE" THEN
  131.         GOTO GETPATHL1
  132.      ELSEIF sz$ = "EXIT" THEN
  133.           GOSUB ASKQUIT
  134.           GOTO GETPATHL1
  135.      ELSE
  136.           UIPop 1
  137.           GOTO WELCOME
  138.      END IF
  139.  
  140.  
  141. INSTALL:                
  142.     SetCopyGaugePosition 80,80
  143.     SYSDEST$ = GetWindowsSysDir()
  144.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  145.  
  146.     SUB1$ = DEST$ + "\ADVISOR"
  147.     SUB2$ = DEST$ + "\SOFTWARE"        
  148.     SUB3$ = DEST$ + "\PRF"
  149.     SUB4$ = DEST$ + "\REPORTS"
  150.     SUB5$ = DEST$ + "\DATA"    
  151.  
  152.     ClearCopyList                                      
  153.      
  154.  
  155.     AddSectionFilesToCopyList "AppFiles", SrcDir$, DEST$     
  156.     CreateDir DEST$, cmoNone         
  157.          
  158.     AddSectionFilesToCopyList "OptFiles1", SrcDir$, SUB1$       
  159.     CreateDir SUB1$, cmoNone      
  160.         
  161.     AddSectionFilesToCopyList "OptFiles2", SrcDir$, SUB2$       
  162.     CreateDir SUB2$, cmoNone      
  163.         
  164.     AddSectionFilesToCopyList "OptFiles3", SrcDir$, SUB3$       
  165.     CreateDir SUB3$, cmoNone      
  166.         
  167.     AddSectionFilesToCopyList "OptFiles4", SrcDir$, SUB4$                 
  168.     CreateDir SUB4$, cmoNone      
  169.  
  170.     AddSectionFilesToCopyList "OptFiles5", SrcDir$, SUB5$                 
  171.     CreateDir SUB5$, cmoNone      
  172.  
  173.     UIPopAll            
  174.     CopyFilesInCopyList    
  175.  
  176.     i% = DoesFileExist(WINDIR$+"CKANDEMO.OLD", femExists)
  177.     IF i% = 1 THEN
  178.         RemoveFile WINDIR$+"CKANDEMO.OLD", cmoForce
  179.     ENDIF    
  180.  
  181.     i% = DoesFileExist(WINDIR$+"CKANDEMO.INI", femExists)
  182.     IF i% = 1 THEN
  183.         RenameFile WINDIR$+"CKANDEMO.INI", "CKANDEMO.OLD"
  184.     ENDIF    
  185.          
  186.      
  187.     ini$ = MakePath(WINDIR$, "CKANDEMO.INI")
  188.     CreateIniKeyValue ini$,    "Directories", "Program",       DEST$, cmoOverwrite
  189.     CreateSysIniKeyValue ini$, "Directories", "Help",          DEST$, cmoOverwrite    
  190.     CreateSysIniKeyValue ini$, "Directories", "Setup Advisor", SUB1$, cmoOverwrite     
  191.     CreateSysIniKeyValue ini$, "Directories", "Software",      SUB2$, cmoOverwrite    
  192.     CreateSysIniKeyValue ini$, "Directories", "PRF",           SUB3$, cmoOverwrite
  193.     CreateSysIniKeyValue ini$, "Directories", "Reports",       SUB4$, cmoOverwrite
  194.     CreateSysIniKeyValue ini$, "Directories", "Data",          SUB5$, cmoOverwrite
  195.  
  196.     CreateIniKeyValue ini$, "Exclude", "WIN", "", cmoOverwrite     
  197.     CreateIniKeyValue ini$, "Exclude", "DOS", "", cmoOverwrite        
  198.  
  199.     CreateIniKeyValue ini$, "Settings", "prf", "DOS8088.PRF,DOS28616.PRF,WIN38625.PRF,WIN386SX.PRF,DOS386SX.PRF,WIN486LP.PRF,DOS486LP.PRF,WIN48650.PRF,DOS48650.PRF", cmoOverwrite                 
  200.     CreateIniKeyValue ini$, "Settings", "Show Vendor", "FALSE", cmoOverwrite            
  201.     
  202.     CreateIniKeyValue ini$, "Configuration Files", "Last Used", "", cmoOverwrite        
  203.  
  204.     CreateSysIniKeyValue ini$, "INSTALL", "Version",  "1.00",   cmoNone    
  205.     CreateIniKeyValue ini$,    "INSTALL", "SN",       " ", cmoOverwrite
  206.     CreateSysIniKeyValue ini$, "INSTALL", "User",     "Demo Copy",     cmoNone    
  207.     CreateSysIniKeyValue ini$, "INSTALL", "Company",  " " ,     cmoNone        
  208.  
  209.  
  210.  
  211.  
  212.     CreateIniKeyValue ini$, "System", "Restart", "FALSE", cmoOverwrite
  213.     ini$ = ""                  
  214.  
  215.     CreateProgmanGroup "Analyst", "", cmoNone
  216.     ShowProgmanGroup  "Analyst", 1, cmoNone
  217.     CreateProgmanItem "Analyst", "CheckIt Analyst Demo", MakePath(DEST$,"CKANLYST.EXE"), "", cmoOverwrite
  218.     CreateProgmanItem "Analyst", "Demo", "write.exe "+MakePath(DEST$,"README.WRI"), "", cmoOverwrite 
  219.  
  220. QUIT:
  221.     ON ERROR GOTO ERRQUIT
  222.     IF ERR = 0 THEN
  223.         dlg% = EXITSUCCESS
  224.     ELSEIF ERR = STFQUIT THEN
  225.           dlg% = EXITQUIT
  226.     ELSE
  227.           dlg% = EXITFAILURE
  228.     END IF
  229. QUITL1:
  230.      sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  231.      IF sz$ = "REACTIVATE" THEN
  232.           GOTO QUITL1
  233.      END IF
  234.      UIPop 1
  235.      END
  236.  
  237. ERRQUIT:
  238.      i% = DoMsgBox("Setup sources were corrupted, call 714-969-7746", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  239.      END
  240.  
  241. BADPATH:
  242.      sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  243.      IF sz$ = "REACTIVATE" THEN
  244.         
  245.         GOTO BADPATH
  246.      END IF
  247.      UIPop 1
  248.      RETURN
  249.           
  250.           
  251. FILEEXIST:    
  252.     UIPopAll
  253.     sz$ = UIStartDlg(CUIDLL$, FILEEXIST, "FCustInstDlgProc", 0, "")
  254.     
  255.     IF sz$ = "EXIT" THEN    
  256.         UIPop 1
  257.         GOTO GETPATH        
  258.     ELSE     
  259.         UIPop 1
  260.         RETURN
  261.     END IF
  262.      
  263.  
  264. ASKQUIT:            
  265.     UIPop 1     
  266.      sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  267.     
  268.      IF sz$ = "EXIT" THEN
  269.           UIPopAll
  270.           ERROR EXITFAILURE
  271.      ELSEIF sz$ = "REACTIVATE" THEN
  272.           GOTO ASKQUIT
  273.      ELSE
  274.           UIPop 1
  275.      END IF
  276.      RETURN
  277.  
  278.  
  279. '**
  280. '** Purpose:
  281. '**     Appends a file name to the end of a directory path,
  282. '**     inserting a backslash character as needed.
  283. '** Arguments:
  284. '**     szDir$  - full directory path (with optional ending "\")
  285. '**     szFile$ - filename to append to directory
  286. '** Returns:
  287. '**     Resulting fully qualified path name.
  288. '*************************************************************************
  289. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  290.      IF szDir$ = "" THEN
  291.           MakePath = szFile$
  292.      ELSEIF szFile$ = "" THEN
  293.           MakePath = szDir$
  294.      ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  295.           MakePath = szDir$ + szFile$
  296.      ELSE
  297.           MakePath = szDir$ + "\" + szFile$
  298.      END IF
  299. END FUNCTION
  300.  
  301.