home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* Instalaτπo '************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' ''Detects Avalilable Disk Space ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST CHECK = 2500 CONST SMALLWIN = 2200 CONST RESTART = 2600 CONST RESTARTII = 2700 CONST BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 GLOBAL SizeReq& '' Total Disk Size required for installation no diret≤rio de instalacao GLOBAL WinSysReq& '' Requerido no diret≤rio do windows\system ''File Types GLOBAL appDEST$ ''Default destination directory. GLOBAL WinDir$ GLOBAL WinSysDir$ GLOBAL WinSys32Dir$ GLOBAL WINDRIVE$ ''Windows Drive Letter. GLOBAL CHECKSTATES$ GLOBAL MinorVer% GLOBAL OnNT$ GLOBAL SrcDir$ GLOBAL QuerInstalar% DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER DECLARE SUB Reboot LIB "iniupd.dll" DECLARE FUNCTION ExitWindowsExec LIB "User" (Exec$, Param$) AS INTEGER DECLARE FUNCTION GetDC LIB "User" (hWnd%) As Integer DECLARE FUNCTION ReleaseDC LIB "User" (hWnd%,hDC%) AS INTEGER DECLARE FUNCTION GetDeviceCaps LIB "GDI" (hDC%,nIndex%) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure WIN32ENABLED% = 0 MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() Processor% = GetProcessorType() WinDir$ = GetWindowsDir() DEST$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() WinSys32Dir$ = WinDir$ + "system32" x% = GetScreenWidth y% = GetScreenHeight 'IF (x% <> 640) OR (y% <> 480) THEN ' Lixo$ = "O programa de instalaτπo do Amaral Netto detectou uma " + Chr$(13) + Chr$(10) ' Lixo$ = Lixo$ + "resoluτπo de vφdeo diferente de 640 X 480. Com a resoluτπo " + Chr$(13) + Chr$(10) ' Lixo$ = Lixo$ + "atual o programa Amaral Netto nπo funcionarß corretamente. " + Chr$(13) + Chr$(10) ' Lixo$ = Lixo$ + "Por favor, para executar o programa, ap≤s instalado, altere " + Chr$(13) + Chr$(10) ' Lixo$ = Lixo$ + "a resoluτπo do seu driver de vφdeo para 640 X 480. " + Chr$(13) + Chr$(13) ' Lixo$ = Lixo$ + "A instalaτπo continuarß normalmente. " + Chr$(13) + Chr$(10) ' Lixo$ = Lixo$ + "Em caso de d·vida, entre em contato com a Z-Movie. " ' i% = DoMsgBox(Lixo$,"Qualidade do Vφdeo", MB_OK+MB_TASKMODAL+MB_ICONHAND) 'END IF IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN 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) 'i% = DoMsgBox("You need an upgrade version of your MS Windows to install this software.", "Installation Error", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF 'Prevents installation on 286 IF Processor% < 3 THEN i% = DoMsgBox("A Pororoca precisa de um processador mais atual.", "Problema na instalaτπo.", MB_OK+MB_TASKMODAL+MB_ICONHAND) 'i% = DoMsgBox("You need a powerfull processor to run this software.","Installation Error.", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF ' Use Wowexec to determine version of NT. 3.1 did not stamp wowexec and wow returns 3.1 as version IF OnWindowsNT() THEN OnNT$ = "TRUE" WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe") IF WowVersion$ = "" THEN 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) '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) END END IF END IF SetBitmap CUIDLL$, LOGO SetTitle "Oficina de Criaτπo do Daniel Azulay - Instalaτπo" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ WINDRIVE$ = MID$(GetWindowsDir, 1, 1) WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF SrcDir$ = GetSymbolValue("STF_SRCDIR") ''Prepare Copy list and check size '' Se o usußrio resolver copiar os arquivos para o diret≤rio de destino ' TempString$ = "Deseja copiar os arquivos executaveis para o HD ?" + Chr$(13) + Chr$(10) ' TempString$ = TempString$ + "Vantagem - Melhor performace." + Chr$(13) + Chr$(10) ' TempString$ = TempString$ + "Essencial com menos de 16Mb de RAM" + Chr$(13) + Chr$(10) ' TempString$ = TempString$ + "Espaτo necessßrio - 6Mb" ' QuerInstalar% = DoMsgBox(TempString$, "Instalaτπo da Pororoca", 4) ClearCopyList 'IF QuerInstalar% = 6 THEN appDEST$ = "C:\OFICINA" GETPATH: SetSymbolValue "EditTextIn", appDEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) appDEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(appDEST$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO GETPATH ELSE GOSUB ASKQUIT GOTO GETPATH END IF CreateDir appDEST$, cmoNone AddSectionFilesToCopyList "AZULAY", MakePath(SrcDir$,"setup"), appDEST$ 'ENDIF ''Aqui Termina o exemplo do setup do windows... '' Runtime files (on Windows disk) '' Do not install OLE or MPlayer if on next release of NT or Windows IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN 'These files not necessary on Windows NT AddSectionFilesToCopyList "MPlayer", MakePath(SrcDir$,"setup"), WinDir$ AddSectionFilesToCopyList "OLE2", MakePath(SrcDir$,"setup"), WinSysDir$ END IF AddSectionFilesToCopyList "WINSYS", MakePath(SrcDir$,"setup"), WinSysDir$ AddSectionFilesToCopyList "runtime", MakePath(SrcDir$,"setup"), WinSysDir$ AddSectionFilesToCopyList "VfW Runtime", MakePath(SrcDir$,"setup"), WinSysDir$ AddSectionFilesToCopyList "ACM Drivers", MakePath(SrcDir$,"setup"), WinSysDir$ AddSectionFilesToCopyList "AVICodecs", MakePath(SrcDir$,"setup"), WinSysDir$ IF OnNT$ = "TRUE" THEN AddSectionFilesToCopyList "NT MSVideo", MakePath(SrcDir$,"setup"), WinSys32Dir$ ENDIF ''************************************************************************************************************************* ''************************************************************************************************************************* ''To add a DCI provider, please un-comment the AddSectionFilesToCopyList, ''and add a "DCI Provider" section with to the SETUP.INF file. '' '' AddSectionFilesToCopyList "DCI Provider", MakePath(SrcDir$,"setup"), WinSysDir$ ''************************************************************************************************************************* ''************************************************************************************************************************* '' Check windrive diskspace SizeReq& = GetCopyListCost ("","", "") IF SizeReq& <> 0 THEN GOSUB SMALLWIN END END IF Install '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically '' else, it gives the user the choice RESTRT% = RestartListEmpty () Exe$ = DEST$ + "\_msrstrt.exe" Batch$ = DEST$ + "\_mssetup.bat" empty$ = "" RESTART: IF RESTRT% = 0 THEN sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO RESTART ENDIF I% = ExitExecRestart () RemoveFile Exe$, cmoForce RemoveFile Batch$, cmoForce END ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "") IF sz$ = "CONTINUE" THEN I% = ExitWindowsExec (Exe$, empty$) IF I% = 0 THEN GOTO RESTART ELSE END ENDIF ELSEIF sz$ = "EXIT" THEN UIPopAll END ELSEIF sz$ = "REACTIVATE" THEN GOTO RESTART ELSE UIPop 1 END IF END IF QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: 'i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) i% = DoMsgBox("Problema na Instalaτπo. Contate o suporte.", "Erro", MB_OK+MB_TASKMODAL+MB_ICONHAND) END ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll '' ERROR STFQUIT END ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN SMALLWIN: sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO SMALLWIN END IF UIPop 1 RETURN '** '** Purpose: '** Performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SetRestartDir WinDir$ CopyFilesInCopyList ''Updating WIN.INI and SYSTEM.INI ''Only update SYSTEM.INI on NT or next version of Windows for other codecs IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN IF VflatdPresent() = 0 THEN CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite END IF END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21") IF I% = 0 THEN CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite ''************************************************************************************************************************* ''************************************************************************************************************************* ''To add a DCI provider, please un-comment the UDH line, and un-comment and replace the <provider> with your own file name '' '' CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "DCI", "<provider>", cmoOverwrite '' CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "vids.draw", "udh.dll", cmoOverwrite ''************************************************************************************************************************* ''************************************************************************************************************************* ''Do not register components not installed with Video for Windows on NT or next version of Windows. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN ''Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg")) '' Mplayer '' CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite END IF ''NT and next version of Windows installation stop here. Run ("profdisp.exe") '' Fim da instalaτπo do video for windows ''Meus arquivos e etc CreateProgmanGroup "Oficina de Criaτπo", "", cmoNone ShowProgmanGroup "Oficina de Criaτπo", 1, cmoNone ' IF QuerInstalar% = 6 THEN ini$ = MakePath(appDEST$, "OFICINA.INI") CreateIniKeyValue ini$, "INICIO", "LINGUA", "0" , cmoOverwrite CreateIniKeyValue ini$, "INICIO", "DRIVE", MakePath(SrcDir$,"") , cmoOverwrite CreateIniKeyValue ini$, "INICIO", "APLIC", "\APP\OFICINA.APP" , cmoOverwrite CreateProgmanItem "Oficina de Criaτπo", "Oficina de Criaτπo",MakePath(appDEST$,"oficina.exe"),"", cmoOverwrite CreateProgmanItem "Oficina de Criaτπo", "Jogos Educativos - Amostra",MakePath(SrcDir$,"demoedu\educat.exe"), "" , cmoOverwrite ' ELSE ' CreateProgmanItem "Oficina de Criaτπo", "Oficina",MakePath(appDEST$, "oficina.exe"), "", cmoOverwrite ' ENDIF ' CreateProgmanItem "Amaral Netto, A Pororoca", "Pesquisa da Pororoca", MakePath(SrcDir$,"Amaral1\pesquisa\teste.exe"), "", cmoOverwrite ' CreateProgmanItem "Amaral Netto, A Pororoca", "Videos da Pororoca", MakePath(SrcDir$,"Amaral1\videos.exe"), "", cmoOverwrite ' CreateProgmanItem "Oficina de Criaτπo", "Leia Me","notepad.exe " + MakePath(SrcDir$,"leiame.txt"), "", cmoOverwrite CreateProgmanItem "Oficina de Criaτπo", "Leia-me", MakePath(appDEST$,"readme.wri"), "", cmoOverwrite TstScreen% = GetDC(0) x% = GetDeviceCaps(TstScreen%, 12) Lixo% = ReleaseDC(0,TstScreen%) ' IF x% < 9 THEN ' IF x% = 8 THEN ' StrTemp$ = "Atenτπo - O programa de instalaτπo detectou que " + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "a resoluτπo do seu driver de vφdeo Θ de 256 cores. " + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "Para que os vφdeos possam ter maior qualidade Θ " + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "necessßrio que o n·mero de cores seja regulado " + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "para High Color ou superior(15, 16 ou 24 bits). " + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "Em caso de d·vida entre em contato com a Z-Movie " ' ELSE ' StrTemp$ = "Atenτπo - O programa de instalaτπo detectou que " + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "a resoluτπo do seu driver de vφdeo Θ de 16 cores. " + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "Apesar de aceitar esta resoluτπo, a qualidade "+ Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "visual torna-se muito fraca. Por favor, altere a " + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "resoluτπo para 256 cores ou mais (8, 15,16 ou 24 bits)." + Chr$(13) + Chr$(10) ' StrTemp$ = StrTemp$ + "Em caso de d·vida entre em contato com a Z-Movie " ' ENDIF ' x% = DoMsgBox(StrTemp$, "Qualidade de vφdeo", MB_OK+MB_TASKMODAL+MB_ICONHAND) ' ENDIF ' x% = DoMsgBox("Nπo esqueτa de executar o φcone <LEIA-ME da pororoca> antes de executar os programas instalados!", "Atenτπo", MB_OK) END SUB '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION