home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Today (BR) Volume 2 #6 / CDRTV2N6.iso / setup / setup.mst < prev    next >
Text File  |  1995-04-15  |  14KB  |  375 lines

  1. '**************************************************************************
  2. '*                 A Pororoca - Instalaτπo
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST APPHELP       = 900
  16. CONST CHECK         = 2500
  17. CONST SMALLWIN      = 2200
  18. CONST RESTART       = 2600
  19. CONST RESTARTII     = 2700
  20. CONST BADPATH       = 6400
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL SizeReq&  '' Total Disk Size required for installation no diret≤rio de instalacao
  26. GLOBAL WinSysReq& '' Requerido no diret≤rio do windows\system
  27.  
  28. ''File Types
  29. GLOBAL appDEST$        ''Default destination directory.
  30. GLOBAL WinDir$
  31. GLOBAL WinSysDir$
  32. GLOBAL WinSys32Dir$
  33. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  34. GLOBAL CHECKSTATES$
  35. GLOBAL MinorVer%
  36. GLOBAL OnNT$
  37. GLOBAL SrcDir$
  38. GLOBAL QuerInstalar%
  39.  
  40. DECLARE SUB Install
  41. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  42. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  43. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  44. DECLARE SUB Reboot LIB "iniupd.dll"
  45. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  46.  
  47. INIT:
  48.   
  49.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  50.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  51.     
  52.     WIN32ENABLED% = 0
  53.     MajorVer% = GetWindowsMajorVersion()
  54.     MinorVer% = GetWindowsMinorVersion()
  55.     Processor% = GetProcessorType()
  56.     WinDir$ = GetWindowsDir()
  57.     DEST$ = GetWindowsDir()    
  58.     WinSysDir$ = GetWindowsSysDir()
  59.     WinSys32Dir$ = WinDir$ + "system32"
  60.  
  61.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  62.     i% = DoMsgBox("Para a instalaτπo deste software Θ necessßria uma versπo mais nova do windows. Por favor, atualize o seu software.", "Problema na Instalaτπo", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  63.     END
  64.     END IF
  65.  
  66.     'Prevents installation on 286
  67.     IF Processor% < 3 THEN
  68.     i% = DoMsgBox("A Pororoca precisa de um processador mais atual.", "Problema na instalaτπo.", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  69.     END
  70.     END IF
  71.  
  72.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  73.     IF OnWindowsNT() THEN
  74.       OnNT$ = "TRUE"
  75.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  76.       IF WowVersion$ = "" THEN
  77.          i% = DoMsgBox("O MS Video for Windows nπo executa no windows NT versπo 3.1.", "Problema na instalaτπo", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  78.          END
  79.       END IF
  80.     END IF
  81.  
  82.     SetBitmap CUIDLL$, LOGO
  83.     SetTitle "Amaral Netto, A Pororoca - Instalaτπo"
  84.  
  85.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  86.     IF szInf$ = "" THEN
  87.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  88.     END IF
  89.     ReadInfFile szInf$
  90.  
  91.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  92.  
  93. WELCOME:
  94.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  95.     IF sz$ = "CONTINUE" THEN
  96.        UIPop 1
  97.      ELSE
  98.     GOSUB ASKQUIT
  99.     GOTO WELCOME
  100.     END IF
  101.  
  102.      
  103.  
  104.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  105. ''Prepare Copy list and check size
  106.  
  107. '' Se o usußrio resolver copiar os arquivos para o diret≤rio de destino
  108.    TempString$ = "Deseja copiar os arquivos executaveis para o HD ?" + ""
  109.    TempString$ = TempString$ + "Vantagem - Melhor performace." +  ""
  110.    TempString$ = TempString$ + "Essencial com menos de 16Mb de RAM" +  ""
  111.    TempString$ = TempString$ + "Espaτo necessßrio - 6Mb"    
  112.    QuerInstalar% = DoMsgBox(TempString$, "Instalaτπo da Pororoca", MB_YESNO+MB_TASKMODAL+MB_ICONHAND) = 6 THEN
  113.  
  114.    ClearCopyList
  115.  
  116.     IF QuerInstalar% = 6 THEN
  117.     appDEST$ = "C:\POROROCA"
  118. GETPATH:        
  119.         SetSymbolValue "EditTextIn", appDEST$
  120.         SetSymbolValue "EditFocus", "END"
  121. GETPATHL1:
  122.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  123.     appDEST$ = GetSymbolValue("EditTextOut")
  124.      IF sz$ = "CONTINUE" THEN
  125.          IF IsDirWritable(appDEST$) = 0 THEN
  126.              GOSUB BADPATH
  127.              GOTO GETPATHL1
  128.             END IF
  129.                 UIPop 1
  130.      ELSEIF sz$ = "REACTIVATE" THEN
  131.             GOTO GETPATHL1
  132.     ELSEIF sz$ = "BACK" THEN
  133.             UIPop 1
  134.             GOTO OPTION
  135.     ELSE
  136.             GOSUB ASKQUIT
  137.                     GOTO GETPATH
  138.         END IF
  139.  
  140.  
  141.  
  142.         CreateDir appDEST$, cmoNone
  143.         OpenLogFile MakePath(appDEST$, "LOGFILE.OUT"), 0
  144.         WriteToLogFile ""
  145.         WriteToLogFile "  User chose as destination directory: '" + appDEST$ + "'"
  146.         WriteToLogFile ""
  147.         WriteToLogFile "May have had to create the directory: " + appDEST$
  148.         WriteToLogFile ""
  149.         AddSectionFilesToCopyList "Pororoca", SrcDir$, appDEST$
  150.         CloseLogFile
  151.     ENDIF
  152.  
  153. ''Aqui Termina o exemplo do setup do windows...
  154.  
  155. ''  Runtime files (on Windows disk)
  156. ''  Do not install OLE or MPlayer if on next release of NT or Windows
  157.  
  158.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  159.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  160.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  161.     END IF
  162.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  163.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  164.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  165.     IF OnNT$ = "TRUE" THEN
  166.     AddSectionFilesToCopyList "NT MSVideo", SrcDir$, WinSys32Dir$
  167.     ENDIF
  168. ''*************************************************************************************************************************
  169. ''*************************************************************************************************************************
  170. ''To add a DCI provider, please un-comment the AddSectionFilesToCopyList,
  171. ''and add a "DCI Provider" section with to the SETUP.INF file.
  172. ''
  173. ''    AddSectionFilesToCopyList "DCI Provider", SrcDir$, WinSysDir$
  174. ''*************************************************************************************************************************
  175. ''*************************************************************************************************************************
  176.  
  177. ''  Check windrive diskspace
  178.     SizeReq& = GetCopyListCost ("","", "")
  179.     IF SizeReq& <> 0 THEN
  180.     GOSUB SMALLWIN
  181.     END
  182.     END IF
  183.  
  184. Install
  185.  
  186. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  187. '' else, it gives the user the choice
  188.     RESTRT% = RestartListEmpty ()
  189.     Exe$ = DEST$ + "\_msrstrt.exe"
  190.     Batch$ = DEST$ + "\_mssetup.bat"
  191.     empty$ = ""
  192. RESTART:
  193.     IF RESTRT% = 0 THEN
  194.        sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  195.        IF sz$ = "REACTIVATE" THEN
  196.       GOTO RESTART
  197.        ENDIF
  198.        I% = ExitExecRestart ()
  199.        RemoveFile Exe$, cmoForce
  200.        RemoveFile Batch$, cmoForce
  201.        END
  202.     ELSE
  203.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  204.        IF sz$ = "CONTINUE" THEN
  205.       I% = ExitWindowsExec (Exe$, empty$)
  206.       IF I% = 0 THEN
  207.          GOTO RESTART
  208.       ELSE
  209.          END
  210.      ENDIF
  211.        ELSEIF sz$ = "EXIT" THEN
  212.       UIPopAll
  213.       END
  214.        ELSEIF sz$ = "REACTIVATE" THEN
  215.       GOTO RESTART
  216.        ELSE
  217.       UIPop 1
  218.        END IF
  219.     END IF
  220.  
  221.  
  222. QUIT:
  223.     ON ERROR GOTO ERRQUIT
  224.  
  225.     IF ERR = 0 THEN
  226.     dlg% = EXITSUCCESS
  227.     ELSEIF ERR = STFQUIT THEN
  228.     dlg% = EXITQUIT
  229.     ELSE
  230.     dlg% = EXITFAILURE
  231.     END IF
  232. QUITL1:
  233.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  234.     IF sz$ = "REACTIVATE" THEN
  235.     GOTO QUITL1
  236.     END IF
  237.     UIPop 1
  238.     END
  239.  
  240. ERRQUIT:
  241.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  242.     END
  243.  
  244.  
  245. ASKQUIT:
  246.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  247.  
  248.     IF sz$ = "EXIT" THEN
  249.     UIPopAll
  250. ''        ERROR STFQUIT
  251.     END
  252.     ELSEIF sz$ = "REACTIVATE" THEN
  253.     GOTO ASKQUIT
  254.     ELSE
  255.     UIPop 1
  256.     END IF
  257.     RETURN
  258.  
  259. BADPATH:
  260.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  261.     IF sz$ = "REACTIVATE" THEN
  262.         GOTO BADPATH
  263.     END IF
  264.     UIPop 1
  265.     RETURN
  266.  
  267.  
  268. SMALLWIN:
  269.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  270.     IF sz$ = "REACTIVATE" THEN
  271.     GOTO SMALLWIN
  272.     END IF
  273.     UIPop 1
  274.     RETURN
  275.  
  276. '**
  277. '** Purpose:
  278. '**     Performs all installation operations.
  279. '** Arguments:
  280. '**     none.
  281. '** Returns:
  282. '**     none.
  283. '*************************************************************************
  284. SUB Install STATIC
  285.  
  286.     SetRestartDir WinDir$
  287.     CopyFilesInCopyList
  288.  
  289. ''Updating WIN.INI and SYSTEM.INI
  290. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  291.  
  292. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  293.     IF VflatdPresent() = 0 THEN
  294.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  295.     END IF
  296. END IF
  297.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  298.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  299.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  300.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  301.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  302.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  303.     IF I% = 0  THEN
  304.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  305.     END IF
  306.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  307.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  308.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  309.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  310.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  311.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  312.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  313.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  314.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  315.  
  316. ''*************************************************************************************************************************
  317. ''*************************************************************************************************************************
  318. ''To add a DCI provider, please un-comment the UDH line, and un-comment and replace the    <provider> with your own file name
  319. ''
  320. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "DCI", "<provider>", cmoOverwrite
  321. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "vids.draw", "udh.dll", cmoOverwrite
  322. ''*************************************************************************************************************************
  323. ''*************************************************************************************************************************
  324.  
  325. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  326. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  327.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  328.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  329.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  330.  
  331. '' Mplayer
  332.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  333.  
  334. END IF    ''NT and next version of Windows installation stop here.
  335.  
  336.     Run ("profdisp.exe") 
  337.  
  338. '' Fim da instalaτπo do video for windows
  339.    
  340. ''Meus arquivos e etc
  341.     CreateProgmanGroup "Amaral Netto, A Pororoca", "", cmoNone
  342.     ShowProgmanGroup  "Amaral Netto, A Pororoca", 1, cmoNone
  343.     IF QuerInstalar% = 6 THEN
  344.     ini$ = MakePath(appDEST$, "POROROCA.INI")
  345.         CreateIniKeyValue ini$, "Diretorios", "DriveCD", MakePath(SrcDir$,"Amaral1\") , cmoNone
  346.     CreateProgmanItem "Amaral Netto, A Pororoca", "A Pororoca",MakePath(appDEST$,"pororoca.exe pororoca.ini"), "", cmoOverwrite
  347.     ELSE
  348.     CreateProgmanItem "Amaral Netto, A Pororoca", "A Pororoca",MakePath(SrcDir$, "Amaral1\pororoca.exe", "", cmoOverwrite    
  349.     ENDIF
  350.     CreateProgmanItem "Amaral Netto, A Pororoca", "Pesquisorama", "notepad.exe "+MakePath(SrcDir$,"Amaral1\pesquisa\teste.exe"), "", cmoOverwrite         
  351. END SUB
  352.  
  353. '**
  354. '** Purpose:
  355. '**     Appends a file name to the end of a directory path,
  356. '**     inserting a backslash character as needed.
  357. '** Arguments:
  358. '**     szDir$  - full directory path (with optional ending "\")
  359. '**     szFile$ - filename to append to directory
  360. '** Returns:
  361. '**     Resulting fully qualified path name.
  362. '*************************************************************************
  363. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  364.     IF szDir$ = "" THEN
  365.     MakePath = szFile$
  366.     ELSEIF szFile$ = "" THEN
  367.     MakePath = szDir$
  368.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  369.     MakePath = szDir$ + szFile$
  370.     ELSE
  371.     MakePath = szDir$ + "\" + szFile$
  372.     END IF
  373. END FUNCTION
  374.  
  375.