home *** CD-ROM | disk | FTP | other *** search
/ Almanaque Abril - A Enciclopédia em Multimídia / ALMANAQUE_ABRIL_95.ISO / instalar.ms_ / instalar.ms
Text File  |  1995-07-14  |  10KB  |  335 lines

  1. '**************************************************************************
  2. '*  Instalaτπo do ALMANAQUE ABRIL CD-ROM 95
  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 ASKLANG       = 100
  12. CONST ASKQUIT       = 200
  13. CONST EXITFAILURE   = 400
  14. CONST EXITQUIT      = 600
  15. CONST OPTIONS       = 800
  16. CONST APPHELP       = 900
  17. CONST ACTIVATEFONTS = 1300
  18. CONST RESTARTWIN    = 1500
  19. CONST DESTPATH      = 1700
  20. CONST TOOBIG        = 6300
  21.  
  22. CONST WS_VISIBLE=&H10000000
  23. CONST WS_BORDER =&H00800000
  24. CONST WS_CLIPCHILDREN =&H02000000
  25. CONST GWL_STYLE =-16
  26. CONST SW_SHOWMAXIMIZED=3
  27.  
  28. ''Bitmap ID
  29. CONST FUNDO = 1
  30.  
  31. GLOBAL szInf$
  32. GLOBAL CUIDLL$      ''Define o nome da DLL a ser uasada.   
  33. GLOBAL CDROM$       ''Diret≤rio Default do CD-ROM.  
  34. GLOBAL DEST$        ''Diret≤rio Default de Destino.
  35. GLOBAL OPTCUR$      ''Opτπo de Seleτπo das Dialog Boxes.
  36. GLOBAL SRCDIR$      ''Mensagens de configuraτπo
  37. GLOBAL ASYM$        ''Diret≤rio do ASYM.INI  
  38. GLOBAL WININI$      ''Diret≤rio do WIN.INI  
  39. GLOBAL SYSINI$      ''Diret≤rio do SYSTEM.INI
  40. GLOBAL CONTRINI$    ''Diret≤rio do Control.ini
  41. GLOBAL AA95INI$      
  42. GLOBAL SPACOL&
  43. GLOBAL SPACOS&
  44. GLOBAL SaidaA$
  45. GLOBAL SaidaB$
  46. GLOBAL ErroFontes$
  47. GLOBAL Lang%
  48.  
  49.  
  50. 'Gostou...
  51. DECLARE SUB Install
  52. DECLARE SUB BackupInis (Extensao$)
  53. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  54. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  55. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  56.  
  57. '**************************************************************************
  58. '**  Script Geral de Instalaτπo
  59. '**************************************************************************
  60.  
  61. hWnd%=HwndFrame()
  62. i1&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  63. j1%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  64.  
  65.  
  66. INIT:
  67.     SPACOS& = 7000000
  68.     SPACOL& = 67000000
  69.     SPACO& = SPACOS&
  70.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  71.     OPTCUR$ = "I"
  72.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  73.     SaidaA$ = "O Windows sera reiniciado e o Almanaque Abril CD-ROM 95 podera ser usado normalmente."
  74.     SaidaB$ = "O Almanaque Abril CD-ROM 95 nπo serß corretamente instalado atΘ que o Windows seja reiniciado."
  75.     ErroFontes$ = "As fontes da Instalaτπo foram corrompidas. Procure Suporte TΘcnico."
  76.     
  77.     SetBitmap CUIDLL$, FUNDO
  78.     SetTitle "ALMANAQUE ABRIL CD-ROM 95"
  79.  
  80.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  81.     IF szInf$ = "" THEN
  82.     szInf$ = GetSymbolValue("STF_CWDDIR") + "AA95.INF"
  83.     END IF
  84.     ReadInfFile szInf$
  85.  
  86.     SRCDIR$ = GetSymbolValue("STF_SRCDIR")
  87.     CDROM$ = MID$(SRCDIR$,1,3)
  88.     WININI$ = MakePath(GetWindowsDir(),"WIN.INI")
  89.     SYSINI$ = MakePath(GetWindowsDir(),"SYSTEM.INI")
  90.     AA95INI$ = MakePath(GetWindowsDir(),"AA95.INI")
  91.     CONTRINI$ = MakePath(GetWindowsDir(),"CONTROL.INI")
  92.  
  93. '$IFDEF DEBUG
  94.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  95.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  96.     DEST$ = WinDrive$
  97.     IF IsDriveValid(WinDrive$) = 0 THEN
  98.         i% = DoMsgBox("O Drive do Windows ('"+WinDrive$+"') nπo Θ vßlido.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  99.     GOTO QUIT
  100.     END IF
  101. '$ENDIF ''DEBUG
  102.  
  103.  
  104. GETPATH:
  105.     DEST$ = "C:\AA95"
  106.     SetSymbolValue "EditTextIn", DEST$
  107.     SetSymbolValue "EditFocus", "END"
  108.  
  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.         DEST$ = "C:\AA95"
  118.         END IF
  119.     ELSEIF sz$ = "REACTIVATE" THEN
  120.         GOTO GETPATHL1
  121.     ELSE
  122.         GOSUB ASKQUIT
  123.         GOTO GETPATH
  124.     END IF
  125.  
  126.  
  127.      'Testa o espaco disponivel no CD-ROM
  128.      IF GetFreeSpaceForDrive( MID$( DEST$, 1, 1 ) ) < SPACO& THEN
  129.     GOSUB DRIVEFULL
  130.     GOTO GETPATHL1
  131.      END IF
  132.      UIPop 1
  133.  
  134.  
  135. ''*************************************************************************
  136.  
  137.  
  138.  
  139.     Install
  140.  
  141.  
  142.  
  143. ''*************************************************************************
  144.  
  145. '    ERR = 0
  146. '    sz$ = UIStartDlg(CUIDLL$, ACTIVATEFONTS, "FInstFontDlgProc", 0, "")
  147. '    UIPop 1
  148. '    GOTO QUIT
  149.  
  150.  
  151. QUIT:
  152.     ON ERROR GOTO ERRQUIT
  153.  
  154.     IF ERR = 0 THEN
  155.        ''Opτπo de reinicializar o Windows
  156.        dlg% = RESTARTWIN
  157.     ELSEIF ERR = STFQUIT THEN
  158.        dlg% = EXITQUIT
  159.     ELSE
  160.        dlg% = EXITFAILURE
  161.     END IF
  162.  
  163. QUITL1:
  164.  
  165.      sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  166.      IF sz$ = "REACTIVATE" THEN
  167.      GOTO QUITL1
  168.      ELSEIF sz$ = "RESTART" THEN
  169.      i% = DoMsgBox( SaidaA$, "SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  170.      ELSEIF sz$ = "EXIT" THEN
  171.      i% = DoMsgBox( SaidaB$, "SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  172.      
  173.      END IF
  174.      UIPop 1
  175.  
  176.      END
  177.  
  178.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  179.     IF sz$ = "REACTIVATE" THEN     ''Se o OK foi apertado...
  180.     GOTO QUITL1
  181.     END IF
  182.  
  183. ERRQUIT:
  184.     i% = DoMsgBox(ErroFontes$, "SETUP", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  185.     END
  186.  
  187. DRIVEFULL:
  188.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  189.     IF sz$ = "REACTIVATE" THEN
  190.         GOTO DRIVEFULL
  191.     END IF
  192.     UIPop 1
  193.     RETURN
  194.  
  195. BADPATH:
  196.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  197.     IF sz$ = "REACTIVATE" THEN
  198.         GOTO BADPATH
  199.     END IF
  200.     UIPop 1
  201.     RETURN
  202.  
  203. ASKQUIT:
  204.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  205.  
  206.     IF sz$ = "EXIT" THEN
  207.     UIPopAll
  208.     ERROR STFQUIT
  209.     ELSEIF sz$ = "REACTIVATE" THEN
  210.      GOTO ASKQUIT
  211.     ELSE
  212.     UIPop 1
  213.     END IF
  214.     RETURN
  215.  
  216.  
  217.  
  218. '**
  219. '** Purpose:
  220. '**     Builds the copy list and performs all installation operations.
  221. '** Arguments:
  222. '**     none.
  223. '** Returns:
  224. '**     none.
  225. '*************************************************************************
  226.  
  227. SUB Install STATIC 
  228.  
  229.  
  230.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  231.  
  232.     BackupInis("A95")   
  233.     ''Adiciona linhas de Animaτπo, Video Digital e
  234.     ''abilita as Fontes TrueType no WIN.INI
  235.     CreateIniKeyValue WININI$,"MCI Extensions","flc","Animation1", cmoOverwrite
  236.     CreateIniKeyValue WININI$,"MCI Extensions","fli","Animation1", cmoOverwrite
  237.     CreateIniKeyValue WININI$,"MCI Extensions","avi","Avivideo", cmoOverwrite
  238.  
  239.     ''Adiciona linhas no System.INI
  240.     CreateIniKeyValue SYSINI$, "MCI", "Avivideo","mciavi.drv", cmoOverwrite
  241.     CreateIniKeyValue SYSINI$,"MCI", "Animation1","mciaap.drv", cmoOverwrite
  242.     CreateIniKeyValue SYSINI$,"Drivers","vidc.msvc","msvidc.drv", cmoOverwrite
  243.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  244.     CreateIniKeyValue SYSINI$, "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  245.     CreateIniKeyValue SYSINI$, "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  246.     CreateIniKeyValue SYSINI$, "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  247.  
  248.     ''Adiciona linhas no CONTROL.INI
  249.     CreateIniKeyValue CONTRINI$, "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  250.     CreateIniKeyValue CONTRINI$, "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  251.     CreateIniKeyValue CONTRINI$, "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  252.  
  253.     CreateIniKeyValue AA95INI$,"CDPath","lPath",SrcDir$, cmoOverwrite
  254.     CreateIniKeyValue AA95INI$,"CDPath","REL","2", cmoOverwrite
  255.  
  256.     DIR$ = DEST$
  257.  
  258.     ''Instala arquivos da seτπo COMUM
  259.     AddSectionFilesToCopyList "Comum", SrcDir$, Dest$
  260.     ''Instala arquivos da seτπo SYSTEM
  261.     AddSectionFilesToCopyList "System", SrcDir$, MakePath(GetWindowsDir(),"SYSTEM")
  262.  
  263.     SetCopyGaugePosition 80, 110
  264.  
  265.     CopyFilesInCopyList
  266.  
  267.     '' Cria o grupo
  268.     CreateProgmanGroup "Almanaque Abril CD-ROM", "", cmoOverwrite
  269.     ShowProgmanGroup  "Almanaque Abril CD-ROM", 1, cmoOverwrite
  270.  
  271.     '' Cria os φcones
  272.     CreateProgmanItem "Almanaque Abril CD-ROM", "Almanaque Abril - 95", MakePath(Dest$,"AA95.EXE") ,MakePath(DEST$,"AA95.EXE"), cmoOverwrite
  273.     CreateProgmanItem "Almanaque Abril CD-ROM", "Informaτ⌡es - 95", MakePath(SrcDir$,"AAHELP.HLP") ,MakePath(SrcDir$,"AAHELP.HLP"), cmoOverwrite
  274.  
  275. END SUB
  276.  
  277. '**Carreti?
  278. '**
  279. '** Purpose:
  280. '**     Appends a file name to the end of a directory path,
  281. '**     inserting a backslash character as needed.
  282. '** Arguments:
  283. '**     szDir$  - full directory path (with optional ending "\")
  284. '**     szFile$ - filename to append to directory
  285. '**     Gace Avestruz
  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.  
  302. '*************************************************************************
  303. SUB BackupInis(Extensao$) STATIC
  304.  
  305.     WINBACK$ = MakePath(GetWindowsDir(),"WIN."+Extensao$)
  306.     SYSBACK$ = MakePath(GetWindowsDir(),"SYSTEM."+Extensao$)
  307.  
  308.     IF EXISTS (WINBACK$) THEN
  309.        KILL WINBACK$
  310.     END IF
  311.  
  312.     IF EXISTS (SYSBACK$) THEN
  313.        KILL SYSBACK$
  314.     END IF
  315.  
  316.  
  317.     OPEN WININI$ FOR INPUT AS 1
  318.     OPEN WINBACK$ FOR APPEND AS 2
  319.     WHILE EOF(1) = FALSE
  320.       LINE INPUT #1, LINHA$
  321.        PRINT #2,LINHA$
  322.     WEND
  323.     CLOSE 2
  324.     CLOSE 1
  325.  
  326.     OPEN SYSINI$ FOR INPUT AS 1
  327.     OPEN SYSBACK$ FOR APPEND AS 2
  328.     WHILE EOF(1) = FALSE
  329.       LINE INPUT #1, LINHA$
  330.       PRINT #2,LINHA$
  331.     WEND
  332.     CLOSE 2
  333.     CLOSE 1
  334. End Sub
  335.