home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* SISAL - 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 "Computer & Games - 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:\COMGAMES" GETPATH: SetSymbolValue "EditTextIn", appDEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: '' 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 "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 ''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 '' 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) 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 ''Meus arquivos e etc CreateProgmanGroup "COMPUTER &games", "", cmoNone ShowProgmanGroup "COMPUTER &games", 1, cmoNone CreateProgmanItem "COMPUTER &games", "COMPUTER &games",MakePath(SrcDir$,"comgames.exe"), "", cmoOverwrite ''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 Run ("profdisp.exe") '' Fim da instalaτπo do video for windows 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