home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* MSSetup Toolkit Sample 1 '************************************************************************** ''$DEFINE DEBUG ''Define for script development/debugging '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' DECLARE FUNCTION max_window LIB "cui.dll" (a%) AS INTEGER DECLARE FUNCTION IsIdCorrect LIB "cui.dll" (b$) AS INTEGER ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST OPTIONS = 800 CONST APPHELP = 900 CONST BADPATH = 6400 CONST CDGETNAMEORG = 7500 CONST CDBADNAME = 7700 CONST BILLBOARD = 9926 ''Bitmap ID CONST LOGO = 1 GLOBAL DEST$ ''Default destination directory. GLOBAL OPTCUR$ ''Option selection from option dialog. GLOBAL USER$ GLOBAL PRODUCTID$ DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING GLOBAL u% INIT: CUIDLL$ = "cui.dll" ''"mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure u%=max_window( HwndFrame()) SetBitmap CUIDLL$, LOGO SetTitle "Instalacion de VisualMap" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "vmap.INF" END IF ReadInfFile szInf$ OPTCUR$ = "1" DEST$ = "C:\VMAP" '$IFDEF DEBUG i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal WinDrive$ = MID$(GetWindowsDir, 1, 1) IF IsDriveValid(WinDrive$) = 0 THEN i% = DoMsgBox("El Disco de Windows ('"+WinDrive$+"') no es vßlido.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK) GOTO QUIT END IF '$ENDIF ''DEBUG WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF OPTION: SetSymbolValue "RadioDefault", OPTCUR$ OPTL1: sz$ = "CONTINUE" ''sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$) '' Salomon meti≤ mano OPTCUR$ = GetSymbolValue("ButtonChecked") IF sz$ = "CONTINUE" THEN UIPop(1) ELSEIF sz$ = "REACTIVATE" THEN GOTO OPTL1 ELSE GOSUB ASKQUIT GOTO OPTION END IF GETUSERINFO: sz$=UIStartDlg(CUIDLL$,CDGETNAMEORG ,"FNameOrgDlgProc",APPHELP,HELPPROC$) USER$=GetSymbolValue("NameOut") PRODUCTID$=GetSymbolValue("OrgOut") UIPop 1 if IsIdCorrect(Ltrim$(Rtrim$(PRODUCTID$)))=0 then sz$=UIStartDlg(CUIDLL$,CDBADNAME,"FInfo0DlgProc",APPHELP,HELPPROC$) UIPop 1 'if sz$="CANCEL" THEN GOSUB ASKQUIT GOTO GETUSERINFO end if WINMODE: kk%=GetWindowsMode() IF kk% <> 2 THEN kk%=DoMsgBox("Window no estß en modo 386-Extendido. Arranque Windows con WIN /3 y en el panel de control configure la Memoria Virtual.", "Mensaje de Instalaci≤n", MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION) END IF PREVINTS: if 0<> DoesIniKeyExist("WIN.INI","VMAP","VMAP") then kk%=DoMsgBox("Parece existir una instalaci≤n anterior de VisualMap. Aseg·rese de que el programa no estß arrancado antes de continuar","Mensaje de Instalaci≤n", MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION) DEST$=GetIniKeyString("WIN.INI","VMAP","VMAP") END IF GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) DEST$ = GetSymbolValue("EditTextOut") 'if RIGHT$(DEST$,1)="\" DEST$=LEFT$(DEST$,len(DEST$)-1) IF sz$ = "CONTINUE" THEN IF IsDirWritable(DEST$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO OPTION ELSE GOSUB ASKQUIT GOTO GETPATH END IF kkk&=GetFreeSpaceForDrive(MID$(DEST$, 1, 1)) 'kk%=DoMsgBox(STR$(kkk&),"kk",MB_OK) IF kkk& < 8500000 THEN kk%=DoMsgBox("No hay suficiente espacio en el disco "+MID$(DEST$, 1, 1)+":. Salga y haga sitio antes de volver a instalar.", "Mensaje de Instalaci≤n", MB_OK+MB_TASKMODAL+MB_ICONHAND) UIPopAll ERROR STFQUIT END IF Install 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("Los discos de Instalaci≤n estan mal..., llamar al (91) 372-9920", "Mensaje de Instalaci≤n", MB_OK+MB_TASKMODAL+MB_ICONHAND) END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* '' Nombre de archivo grafico de arranque CONST ARCHOWG$ = "espa\data\vmap.OWG" '' Cambiar en el futuro SUB Install STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir DEST$, cmoNone CreateDir MakePath(DEST$,"espa") ,cmoNone CreateDir MakePath(DEST$,"espa\prof"),cmoNone CreateDir MakePath(DEST$,"espa\bmp"),cmoNone OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0 WriteToLogFile "" WriteToLogFile " User chose as destination directory: '" + DEST$ + "'" WriteToLogFile " User chose option: '" + OPTCUR$ + "'" WriteToLogFile "" WriteToLogFile "May have had to create the directory: " + DEST$ WriteToLogFile "" SysDir$=GetWindowsSysDir() ''uno%=SetDecompMode(1) AddSectionFilesToCopyList "Files", SrcDir$, DEST$ AddSectionFilesToCopyList "data", SrcDir$, DEST$+"\espa\data\" AddSectionFilesToCopyList "bmp", SrcDir$, DEST$+"\espa\bmp\" AddSectionFilesToCopyList "system", SrcDir$, SysDir$ 'AddToBillBoardList "cui.dll", BILLBOARD, "FModelessBmDlgProc", 10 'AddToBillBoardList "cui.dll", BILLBOARD, "FModelessBmDlgProc", 10 'AddToBillBoardList "cui.dll", BILLBOARD, "FModelessBmDlgProc", 10 SetCopyGaugePosition 2, 90 CopyFilesInCopyList ini$ = MakePath(DEST$, "vmap.INI") cityini$=MakePath(DEST$,"espa\prof\vmap.ini" ) CreateIniKeyValue "WIN.INI", "VMAP", "VMAP", DEST$, cmoOverwrite '' salomon CreateIniKeyValue ini$, "Status", "Zoom", "3" , cmoOverwrite CreateIniKeyValue cityini$, "Status", "Zoom", "3" , cmoOverwrite ' Centrado del Mapa CreateIniKeyValue ini$, "Status", "GsbV", "-882" , cmoOverwrite CreateIniKeyValue cityini$, "Status", "GsbV", "-882" , cmoOverwrite CreateIniKeyValue ini$, "Status", "GsbH", "3883" , cmoOverwrite CreateIniKeyValue cityini$, "Status", "GsbH", "3883" , cmoOverwrite CreateIniKeyValue ini$, "Status", "Maximized", "1" , cmoOverwrite CreateIniKeyValue cityini$, "Status", "Maximized", "1" , cmoOverwrite CreateIniKeyValue ini$, "Status", "text", "1" , cmoOverwrite CreateIniKeyValue cityini$, "Status", "text", "1" , cmoOverwrite CreateIniKeyValue ini$, "Status", "color", "1" , cmoOverwrite CreateIniKeyValue cityini$, "Status", "color", "1" , cmoOverwrite CreateIniKeyValue ini$, "ID","User",USER$,cmoOverwrite CreateIniKeyValue ini$, "ID","Id",PRODUCTID$,cmoOverwrite CreateIniKeyValue ini$,"Ciudades","Espa±a","espa",cmoOverwrite CreateIniKeyValue cityini$, "Status", "nFiles", "4" , cmoOverwrite CreateIniKeyValue cityini$, "Show", "9", "" , cmoNone '' hot CreateIniKeyValue cityini$, "Show", "13", "" , cmoNone CreateIniKeyValue cityini$, "Show", "10", "" , cmoNone '' par CreateIniKeyValue cityini$, "Show", "12", "" , cmoNone CreateIniKeyValue cityini$, "Show", "11", "" , cmoNone '' resta CreateIniKeyValue cityini$, "Show", "17", "" , cmoNone CreateIniKeyValue cityini$, "Show", "92", "" , cmoNone '' parques CreateIniKeyValue cityini$, "Show", "96", "" , cmoNone '' playazul CreateIniKeyValue cityini$, "Show", "62", "" , cmoNone '' gas CreateIniKeyValue cityini$, "Show", "75", "" , cmoNone '' puertos CreateIniKeyValue cityini$, "Show", "41", "" , cmoNone '' hidro CreateIniKeyValue cityini$, "Show", "54", "" , cmoNone '' pueblos CreateIniKeyValue cityini$, "Show", "55", "" , cmoNone CreateIniKeyValue cityini$, "Show", "56", "" , cmoNone CreateIniKeyValue cityini$, "Show", "57", "" , cmoNone CreateIniKeyValue cityini$, "Show", "100", "" , cmoNone '' carreteras CreateIniKeyValue cityini$, "Show", "110", "" , cmoNone CreateIniKeyValue cityini$, "Show", "120", "" , cmoNone CreateIniKeyValue cityini$, "Show", "130", "" , cmoNone CreateIniKeyValue cityini$, "Show", "140", "" , cmoNone CreateIniKeyValue cityini$, "Show", "150", "" , cmoNone CreateIniKeyValue cityini$, "Show", "160", "" , cmoNone 'ODBC Setup ....................... winDir$=GetWindowsDir() odbcIni$=MakePath(winDir$,"odbc.ini") CreateIniKeyValue odbcIni$, "ODBC Data Sources", "espa", "WATCOM SQL" , cmoOverwrite CreateIniKeyValue odbcIni$, "espa", "Driver", MakePath(DEST$,"wsqlodbc.dll") , cmoOverwrite CreateIniKeyValue odbcIni$, "espa", "UID", "DBA" , cmoOverwrite CreateIniKeyValue odbcIni$, "espa", "PWD", "SQL" , cmoOverwrite CreateIniKeyValue odbcIni$, "espa", "Description", "Espa±a" , cmoOverwrite CreateIniKeyValue odbcIni$, "espa", "Database", MakePath(DEST$,"espa\data\vmap.db") , cmoOverwrite CreateIniKeyValue odbcIni$, "espa", "Start", MakePath(DEST$,"rtstartw.exe -b -c150k %d") , cmoOverwrite progma$=MakePath(DEST$, "vmap.exe -cespa") CreateProgmanGroup "VisualMap", "", cmoNone 'ShowProgmanGroup "VisualMap", 1, cmoNone CreateProgmanItem "VisualMap", "VM Espa±a", progma$, "", cmoOverwrite progma$=MakePath(DEST$, "vmap.exe -cbarna") CreateProgmanItem "VisualMap", "VM Barcelona", progma$, "", cmoOverwrite progma$=MakePath(DEST$, "vmap.exe -cmadrid") CreateProgmanItem "VisualMap", "VM Madrid", progma$, "", cmoOverwrite CreateProgmanItem "VisualMap","Leeme","write.exe "+MakePath(DEST$, "leeme.wri"),"",cmoOverwrite CloseLogFile 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