home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Today (BR) Volume 2 #3 / CDRTV2N3.iso / demoedu / setup.mst < prev    next >
Text File  |  1995-09-03  |  10KB  |  351 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.  
  10. CONST ESCLINGUA     = 50
  11.  
  12.  
  13. CONST WELCOME       = 100
  14. CONST WELCING        = 110
  15. CONST WELCESP       = 120
  16.     
  17. CONST ASKQUIT       = 200
  18. CONST ASKQING       = 210
  19. CONST ASKQESP       = 220
  20.  
  21.  
  22. CONST DESTPATH      = 300
  23. CONST DESTPING      = 310
  24. CONST DESTPESP      = 320
  25.  
  26.  
  27. CONST EXITFAILURE   = 400
  28. CONST EXITQUIT      = 600
  29. CONST EXITSUCCESS   = 700
  30. CONST APPHELP       = 900
  31. CONST CHECK         = 2500
  32. CONST SMALLWIN      = 2200
  33. CONST RESTART       = 2600
  34. CONST RESTARTII     = 2700
  35. CONST BADPATH       = 6400
  36.  
  37. ''Bitmap ID
  38. CONST LOGO = 1
  39.  
  40. GLOBAL SizeReq&  '' Total Disk Size required for installation no diret≤rio de instalacao
  41. GLOBAL WinSysReq& '' Requerido no diret≤rio do windows\system
  42.  
  43. ''File Types
  44. GLOBAL appDEST$        ''Default destination directory.
  45. GLOBAL WinDir$
  46. GLOBAL WinSysDir$
  47. GLOBAL WinSys32Dir$
  48. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  49. GLOBAL CHECKSTATES$
  50. GLOBAL MinorVer%
  51. GLOBAL OnNT$
  52. GLOBAL SrcDir$
  53. GLOBAL QuerInstalar%
  54. GLOBAL Lingua$
  55. GLOBAL Delta%
  56.  
  57.  
  58. DECLARE SUB Install
  59. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  60. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  61. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  62. DECLARE SUB Reboot LIB "iniupd.dll"
  63.  
  64. DECLARE FUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  65.  
  66. DECLARE FUNCTION GetDC LIB "User" (hWnd%) As Integer
  67. DECLARE FUNCTION ReleaseDC LIB "User" (hWnd%,hDC%) AS INTEGER
  68. DECLARE FUNCTION GetDeviceCaps LIB "GDI" (hDC%,nIndex%) AS INTEGER
  69.  
  70. INIT:
  71.   
  72.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  73.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  74.     
  75.     ''Pergunta a lingua ...
  76.     sz$ = "CONTINUE"
  77.  
  78.     SELECT CASE sz$
  79.     CASE "CONTINUE"  ''Potugues
  80.         Lingua$ = "0"
  81.         Delta% = 0
  82.     CASE "EXIT"  ''Ingles
  83.         Lingua$ = "2"
  84.         Delta% = 10
  85.     CASE "BACK"  ''Espanhol
  86.         Lingua$ = "1"
  87.         Delta% = 20
  88.     END SELECT
  89.  
  90.     WIN32ENABLED% = 0
  91.     MajorVer% = GetWindowsMajorVersion()
  92.     MinorVer% = GetWindowsMinorVersion()
  93.     Processor% = GetProcessorType()
  94.     WinDir$ = GetWindowsDir()
  95.     DEST$ = GetWindowsDir()    
  96.     WinSysDir$ = GetWindowsSysDir()
  97.     WinSys32Dir$ = WinDir$ + "system32"
  98.  
  99.     x% = GetScreenWidth
  100.     y% = GetScreenHeight 
  101.  
  102.  
  103.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  104.     SELECT CASE Delta%
  105.         CASE 0  
  106.             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)
  107.         CASE 10 
  108.             i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  109.         CASE 20 
  110.             i% = DoMsgBox("Para la instalaci≤n de este software es necesaria una versi≤n mßs nueva del windows. Por favor, actualiza tu software.", "Problema en la Instalaci≤n", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  111.     END SELECT
  112.     END
  113.     END IF
  114.  
  115.     'Prevents installation on 286
  116.     IF Processor% < 3 THEN
  117.     SELECT CASE Delta%
  118.         CASE 0 
  119.             i% = DoMsgBox("Os jogos educativos precisam de um processador mais atual.", "Problema na instalaτπo.", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  120.         CASE 10
  121.             i% = DoMsgBox("Educational Games requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  122.         CASE 20 
  123.             i% = DoMsgBox("Los juegos educativos precisan de un procesador mßs actual.", "Problema en la instalaci≤n.", MB_OK+MB_TASKMODAL+MB_ICONHAND) 
  124.     END SELECT 
  125.     END
  126.     END IF
  127.  
  128.  
  129.     SetBitmap CUIDLL$, LOGO+Delta%
  130.     SELECT CASE Delta%
  131.         CASE 0 
  132.             SetTitle "Jogos Educativos - Instalaτπo"
  133.         CASE 10 
  134.             SetTitle "Educational Games Setup Program"
  135.         CASE 20 
  136.             SetTitle "Juegos Educativos - Instalaci≤n"
  137.     END SELECT
  138.  
  139.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  140.     IF szInf$ = "" THEN
  141.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  142.     END IF
  143.     ReadInfFile szInf$
  144.  
  145.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  146.  
  147. WELCOME:
  148.     sz$ = UIStartDlg(CUIDLL$, WELCOME+Delta%, "FInfoDlgProc", APPHELP, HELPPROC$)
  149.     IF sz$ = "CONTINUE" THEN
  150.        UIPop 1
  151.      ELSE
  152.     GOSUB ASKQUIT
  153.     GOTO WELCOME
  154.     END IF
  155.  
  156.      
  157.  
  158.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  159. ''Prepare Copy list and check size
  160.  
  161.    QuerInstalar% = 6
  162.  
  163.    ClearCopyList
  164.  
  165.  
  166.    
  167.     AddSectionFilesToCopyList "runtime", MakePath(SrcDir$,""), WinSysDir$
  168.  
  169.  
  170. ''  Check windrive diskspace
  171.     SizeReq& = GetCopyListCost ("","", "")
  172.     IF SizeReq& <> 0 THEN
  173.     GOSUB SMALLWIN
  174.     END
  175.     END IF
  176.  
  177. Install
  178.  
  179. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  180. '' else, it gives the user the choice
  181.     RESTRT% = RestartListEmpty ()
  182.     Exe$ = DEST$ + "\_msrstrt.exe"
  183.     Batch$ = DEST$ + "\_mssetup.bat"
  184.     empty$ = ""
  185. RESTART:
  186.     IF RESTRT% = 0 THEN
  187.        sz$ = UIStartDlg(CUIDLL$, RESTART+Delta%, "FInfo0DlgProc", 0, "")
  188.        IF sz$ = "REACTIVATE" THEN
  189.       GOTO RESTART
  190.        ENDIF
  191.        I% = ExitExecRestart ()
  192.        RemoveFile Exe$, cmoForce
  193.        RemoveFile Batch$, cmoForce
  194.        END
  195.     ELSE
  196.        sz$ = UIStartDlg(CUIDLL$, RESTARTII+Delta%, "FQuitDlgProc", 0, "")
  197.        IF sz$ = "CONTINUE" THEN
  198.       I% = ExitWindowsExec (Exe$, empty$)
  199.       IF I% = 0 THEN
  200.          GOTO RESTART
  201.       ELSE
  202.          END
  203.      ENDIF
  204.        ELSEIF sz$ = "EXIT" THEN
  205.       UIPopAll
  206.       END
  207.        ELSEIF sz$ = "REACTIVATE" THEN
  208.       GOTO RESTART
  209.        ELSE
  210.       UIPop 1
  211.        END IF
  212.     END IF
  213.  
  214.  
  215. QUIT:
  216.     ON ERROR GOTO ERRQUIT
  217.  
  218.     IF ERR = 0 THEN
  219.     dlg% = EXITSUCCESS
  220.     ELSEIF ERR = STFQUIT THEN
  221.     dlg% = EXITQUIT
  222.     ELSE
  223.     dlg% = EXITFAILURE
  224.     END IF
  225. QUITL1:
  226.     sz$ = UIStartDlg(CUIDLL$, dlg%+Delta%, "FInfo0DlgProc", 0, "")
  227.     IF sz$ = "REACTIVATE" THEN
  228.     GOTO QUITL1
  229.     END IF
  230.     UIPop 1
  231.     END
  232.  
  233. ERRQUIT:
  234.     SELECT CASE Delta%
  235.         CASE 0
  236.             i% = DoMsgBox("Houve um problema na instalaτπo, entre em contato com a Z-Movie", "Problema na instalaτπo", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  237.         CASE 10
  238.             i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)    
  239.         CASE 20
  240.             i% = DoMsgBox("Hubo un problema en la instalaci≤n, entra en contacto con  Z-Movie", "Problema en la instalaci≤n", MB_OK+MB_TASKMODAL+MB_ICONHAND)    
  241.     END SELECT
  242.     END
  243.  
  244.  
  245. ASKQUIT:
  246.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT+Delta%, "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+Delta%, "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+Delta%, "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.    
  290. ''Meus arquivos e etc
  291.     IF QuerInstalar% = 6 THEN
  292.     
  293.         
  294.     SELECT CASE  Delta%
  295.         CASE 0
  296.             CreateProgmanGroup "Jogos Educativos", "", cmoNone
  297.             ShowProgmanGroup  "Jogos Educativos", 1, cmoNone
  298.         CASE 20
  299.             CreateProgmanGroup "Juegos Educativos", "", cmoNone
  300.             ShowProgmanGroup  "Juegos Educativos", 1, cmoNone
  301.         CASE 10
  302.             CreateProgmanGroup "Educational Games", "", cmoNone
  303.             ShowProgmanGroup  "Educational Games", 1, cmoNone
  304.         END SELECT     
  305.     
  306.     SELECT CASE Delta%
  307.         CASE 0
  308.             CreateProgmanItem "Jogos Educativos", "Lucas sai de fΘrias",MakePath(SrcDir$,"educat.exe"), "", cmoOverwrite    
  309.             CreateProgmanItem "Jogos Educativos", "Leia-me dos Jogos Educativos","notepad.exe " +  MakePath(SrcDir$,"infop.txt"), "", cmoOverwrite             
  310.         CASE 20
  311.             CreateProgmanItem "Juegos Educativos", "Lucas sali≤ de vacaciones",MakePath(appDEST$,"educat.exe"), "", cmoOverwrite    
  312.             CreateProgmanItem "Juegos Educativos", "L╔AME de los Juegos Educativos","notepad.exe " +  MakePath(SrcDir$,"infoe.txt"), "", cmoOverwrite             
  313.         CASE 10
  314.             CreateProgmanItem "Educational Games", "Lucas goes on vacation",MakePath(appDEST$,"educat.exe"), "", cmoOverwrite    
  315.             CreateProgmanItem "Educational Games", "Read me","notepad.exe " +  MakePath(SrcDir$,"infoi.txt"), "", cmoOverwrite             
  316.     END SELECT
  317.     ENDIF
  318.     SELECT CASE  Delta%
  319.         CASE 0  
  320.             x% = DoMsgBox("Nπo esqueτa de executar o φcone <LEIA-ME dos Jogos Educativos> antes de executar o programa instalado!", "ATEN╟├O", MB_OK)    
  321.         CASE 10 
  322.             x% = DoMsgBox("Do not forget to run Read me", "WARNING", MB_OK)    
  323.         CASE 20 
  324.             x% = DoMsgBox("íNo te olvides de ejecutar el φcono <L╔AME de los Juegos Educativos> antes de ejecutar los programas instalados!", "ATENCI╙N", MB_OK)    
  325.     END SELECT
  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.