home *** CD-ROM | disk | FTP | other *** search
/ Computer & Games 18 / CD2.ISO / setup.mst < prev    next >
Encoding:
Text File  |  1995-11-27  |  11.7 KB  |  351 lines

  1. '**************************************************************************
  2. '*                 SISAL - 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.  
  46. DECLARE FUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  47.  
  48. DECLARE FUNCTION GetDC LIB "User" (hWnd%) As Integer
  49. DECLARE FUNCTION ReleaseDC LIB "User" (hWnd%,hDC%) AS INTEGER
  50. DECLARE FUNCTION GetDeviceCaps LIB "GDI" (hDC%,nIndex%) AS INTEGER
  51.  
  52. INIT:
  53.   
  54.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  55.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  56.     
  57.     WIN32ENABLED% = 0
  58.     MajorVer% = GetWindowsMajorVersion()
  59.     MinorVer% = GetWindowsMinorVersion()
  60.     Processor% = GetProcessorType()
  61.     WinDir$ = GetWindowsDir()
  62.     DEST$ = GetWindowsDir()    
  63.     WinSysDir$ = GetWindowsSysDir()
  64.     WinSys32Dir$ = WinDir$ + "system32"
  65.  
  66.     x% = GetScreenWidth
  67.     y% = GetScreenHeight 
  68.  
  69.     'IF (x% <> 640) OR (y% <> 480) THEN
  70.     '            Lixo$ = "O programa de instalaτπo do Amaral Netto detectou uma         " + Chr$(13) + Chr$(10)
  71.     '    Lixo$ = Lixo$ + "resoluτπo de vφdeo diferente de 640 X 480. Com a resoluτπo    " + Chr$(13) + Chr$(10)
  72.     '    Lixo$ = Lixo$ + "atual o programa Amaral Netto nπo funcionarß corretamente.    " + Chr$(13) + Chr$(10)
  73.     '    Lixo$ = Lixo$ + "Por favor, para executar o programa, ap≤s instalado, altere   " + Chr$(13) + Chr$(10)
  74.     '    Lixo$ = Lixo$ + "a resoluτπo do seu driver de vφdeo para 640 X 480.            " + Chr$(13) + Chr$(13)
  75.     '    Lixo$ = Lixo$ + "A instalaτπo continuarß normalmente.                          " + Chr$(13) + Chr$(10)
  76.     '    Lixo$ = Lixo$ + "Em caso de d·vida, entre em contato com a Z-Movie.            "
  77.     '    i% = DoMsgBox(Lixo$,"Qualidade do Vφdeo", MB_OK+MB_TASKMODAL+MB_ICONHAND)            
  78.     'END IF        
  79.     
  80.     'IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  81.     '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)
  82.     'i% = DoMsgBox("You need an upgrade version of your MS Windows to install this software.", "Installation Error", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  83.     'END
  84.     'END IF
  85.  
  86.     'Prevents installation on 286
  87. '    IF Processor% < 3 THEN
  88. '    'i% = DoMsgBox("A Pororoca precisa de um processador mais atual.", "Problema na instalaτπo.", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  89. '    i% = DoMsgBox("You need a powerfull processor to run this software.","Installation Error.", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  90. '    END
  91. '    END IF
  92.  
  93.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  94. '     IF OnWindowsNT() THEN
  95. '      OnNT$ = "TRUE"
  96. '      WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  97. '      IF WowVersion$ = "" THEN
  98. '         '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)
  99. '         i% = DoMsgBox("You can't run MS Video for Windows in then MS Windows NT 3.1.", "Installation Error", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  100. '         END
  101. '      END IF
  102. '    END IF
  103.  
  104.     SetBitmap CUIDLL$, LOGO
  105.     SetTitle "Computer & Games - Instalaτπo"
  106.  
  107.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  108.     IF szInf$ = "" THEN
  109.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  110.     END IF
  111.     ReadInfFile szInf$
  112.  
  113.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  114.  
  115. WELCOME:
  116.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  117.     IF sz$ = "CONTINUE" THEN
  118.        UIPop 1
  119.      ELSE
  120.     GOSUB ASKQUIT
  121.     GOTO WELCOME
  122.     END IF
  123.  
  124.      
  125.  
  126.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  127. ''Prepare Copy list and check size
  128.  
  129. '' Se o usußrio resolver copiar os arquivos para o diret≤rio de destino
  130. '   TempString$ = "Deseja copiar os arquivos executaveis para o HD ?" + Chr$(13) + Chr$(10)
  131. '   TempString$ = TempString$ + "Vantagem - Melhor performace." + Chr$(13) + Chr$(10)
  132. '   TempString$ = TempString$ + "Essencial com menos de 16Mb de RAM" + Chr$(13) + Chr$(10)
  133. '   TempString$ = TempString$ + "Espaτo necessßrio - 6Mb"    
  134. '   QuerInstalar% = DoMsgBox(TempString$, "Instalaτπo da Pororoca", 4)
  135.  
  136.    ClearCopyList
  137.  
  138.     'IF QuerInstalar% = 6 THEN
  139.     appDEST$ = "C:\COMGAMES"
  140. GETPATH:        
  141.         SetSymbolValue "EditTextIn", appDEST$
  142.         SetSymbolValue "EditFocus", "END"
  143. GETPATHL1:
  144.  
  145.  
  146. ''  Runtime files (on Windows disk)
  147. ''  Do not install OLE or MPlayer if on next release of NT or Windows
  148.  
  149.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  150.     AddSectionFilesToCopyList "MPlayer", MakePath(SrcDir$,"setup"), WinDir$
  151.     AddSectionFilesToCopyList "OLE2", MakePath(SrcDir$,"setup"), WinSysDir$
  152.     END IF
  153.     AddSectionFilesToCopyList "WINSYS", MakePath(SrcDir$,"setup"), WinSysDir$
  154.     AddSectionFilesToCopyList "VfW Runtime", MakePath(SrcDir$,"setup"), WinSysDir$
  155.     AddSectionFilesToCopyList "ACM Drivers", MakePath(SrcDir$,"setup"), WinSysDir$
  156.     AddSectionFilesToCopyList "AVICodecs", MakePath(SrcDir$,"setup"), WinSysDir$
  157.     IF OnNT$ = "TRUE" THEN
  158.     AddSectionFilesToCopyList "NT MSVideo", MakePath(SrcDir$,"setup"), WinSys32Dir$
  159.     ENDIF
  160.  
  161.  
  162. ''Aqui Termina o exemplo do setup do windows...
  163.  
  164. ''  Runtime files (on Windows disk)
  165. ''  Do not install OLE or MPlayer if on next release of NT or Windows
  166.  
  167.  
  168. ''  Check windrive diskspace
  169.     SizeReq& = GetCopyListCost ("","", "")
  170.     IF SizeReq& <> 0 THEN
  171.     GOSUB SMALLWIN
  172.     END
  173.     END IF
  174.  
  175. Install
  176.  
  177. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  178. '' else, it gives the user the choice
  179.     RESTRT% = RestartListEmpty ()
  180.     Exe$ = DEST$ + "\_msrstrt.exe"
  181.     Batch$ = DEST$ + "\_mssetup.bat"
  182.     empty$ = ""
  183. RESTART:
  184.     IF RESTRT% = 0 THEN
  185.        sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  186.        IF sz$ = "REACTIVATE" THEN
  187.       GOTO RESTART
  188.        ENDIF
  189.        I% = ExitExecRestart ()
  190.        RemoveFile Exe$, cmoForce
  191.        RemoveFile Batch$, cmoForce
  192.        END
  193.     ELSE
  194.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  195.        IF sz$ = "CONTINUE" THEN
  196.       I% = ExitWindowsExec (Exe$, empty$)
  197.       IF I% = 0 THEN
  198.          GOTO RESTART
  199.       ELSE
  200.          END
  201.      ENDIF
  202.        ELSEIF sz$ = "EXIT" THEN
  203.       UIPopAll
  204.       END
  205.        ELSEIF sz$ = "REACTIVATE" THEN
  206.       GOTO RESTART
  207.        ELSE
  208.       UIPop 1
  209.        END IF
  210.     END IF
  211.  
  212.  
  213.  
  214. QUIT:
  215.     ON ERROR GOTO ERRQUIT
  216.  
  217.     IF ERR = 0 THEN
  218.     dlg% = EXITSUCCESS
  219.     ELSEIF ERR = STFQUIT THEN
  220.     dlg% = EXITQUIT
  221.     ELSE
  222.     dlg% = EXITFAILURE
  223.     END IF
  224. QUITL1:
  225.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  226.     IF sz$ = "REACTIVATE" THEN
  227.     GOTO QUITL1
  228.     END IF
  229.     UIPop 1
  230.     END
  231.  
  232. ERRQUIT:
  233.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  234.     END
  235.  
  236.  
  237. ASKQUIT:
  238.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  239.  
  240.     IF sz$ = "EXIT" THEN
  241.     UIPopAll
  242. ''        ERROR STFQUIT
  243.     END
  244.     ELSEIF sz$ = "REACTIVATE" THEN
  245.     GOTO ASKQUIT
  246.     ELSE
  247.     UIPop 1
  248.     END IF
  249.     RETURN
  250.  
  251. BADPATH:
  252.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  253.     IF sz$ = "REACTIVATE" THEN
  254.         GOTO BADPATH
  255.     END IF
  256.     UIPop 1
  257.     RETURN
  258.  
  259.  
  260. SMALLWIN:
  261.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  262.     IF sz$ = "REACTIVATE" THEN
  263.     GOTO SMALLWIN
  264.     END IF
  265.     UIPop 1
  266.     RETURN
  267.  
  268. '**
  269. '** Purpose:
  270. '**     Performs all installation operations.
  271. '** Arguments:
  272. '**     none.
  273. '** Returns:
  274. '**     none.
  275. '*************************************************************************
  276. SUB Install STATIC
  277.  
  278.     SetRestartDir WinDir$
  279.     CopyFilesInCopyList
  280.  
  281.  
  282. ''Meus arquivos e etc
  283.     CreateProgmanGroup "COMPUTER &games", "", cmoNone
  284.     ShowProgmanGroup  "COMPUTER &games", 1, cmoNone
  285.     CreateProgmanItem "COMPUTER &games", "COMPUTER &games",MakePath(SrcDir$,"comgames.exe"), "", cmoOverwrite
  286.  
  287.  
  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.     Run ("profdisp.exe") 
  319.  
  320. '' Fim da instalaτπo do video for windows
  321.  
  322.  
  323.    
  324.    
  325.    
  326.  
  327. END SUB
  328.  
  329. '**
  330. '** Purpose:
  331. '**     Appends a file name to the end of a directory path,
  332. '**     inserting a backslash character as needed.
  333. '** Arguments:
  334. '**     szDir$  - full directory path (with optional ending "\")
  335. '**     szFile$ - filename to append to directory
  336. '** Returns:
  337. '**     Resulting fully qualified path name.
  338. '*************************************************************************
  339. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  340.     IF szDir$ = "" THEN
  341.     MakePath = szFile$
  342.     ELSEIF szFile$ = "" THEN
  343.     MakePath = szDir$
  344.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  345.     MakePath = szDir$ + szFile$
  346.     ELSE
  347.     MakePath = szDir$ + "\" + szFile$
  348.     END IF
  349. END FUNCTION
  350.  
  351.