home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Lingua Land
/
lingua_land.iso
/
lingua
/
lingua.mst
< prev
next >
Wrap
Text File
|
1996-08-21
|
13KB
|
487 lines
'**************************************************************************
'* LinguaLand setup application
'**************************************************************************
'$DEFINE DEBUG ''Define for script development/debugging
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
'$INCLUDE 'msregdb.inc'
'$INCLUDE 'msshared.inc'
''Dialog ID's
CONST WELCOME = 100
CONST ASKQUIT = 200
CONST DESTPATH = 300
CONST EXITFAILURE = 400
CONST EXITWIN32S = 500
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST OPTIONS = 800
CONST APPHELP = 900
CONST RESTARTDLG = 1000
CONST BADPATH = 6400
CONST SMALLWIN = 2200
CONST RESTART = 2600
CONST RESTARTII = 2700
CONST WAIT = 5000
CONST GETPASSWORD = 7801
CONST HELP_1 = 7802
CONST HELP_2 = 7803
CONST HELP_3 = 7804
''Bitmap ID
CONST LOGO = 1
GLOBAL DEST$ ''Default destination directory.
GLOBAL DESTSYS$ '' system directory
GLOBAL LANGUAGE$ ''Student language
GLOBAL LangLearn$ '' Learn language
GLOBAL CUIDLL$ ''Custom user interface dll
GLOBAL HELPPROC$ ''Help dialog procedure
DECLARE SUB Install
DECLARE SUB Register
DECLARE SUB NativeLanguage
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE fUNCTION ExitWindowsExec LIB "User" (Exec$, Param$) AS INTEGER
DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
DECLARE FUNCTION ShowWindow LIB "user" (hwnd%, flag%) AS INTEGER
DECLARE FUNCTION IsWin32sLoaded LIB "INIUPD.DLL" (arg1$) AS INTEGER
INIT:
' Okno na caly ekran
i% = ShowWindow(HwndFrame(),3)
DEST$ = "C:\Lingua"
LangLearn$ = ""
LANGUAGE$ = "PL"
DESTSYS$ = GetWindowsSysDir()
CUIDLL$ = "mscuistf.dll"
HELPPROC$ = "FHelpDlgProc"
SetBitmap CUIDLL$, LOGO
SetTitle "Lingua Land Setup"
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "Lingua.INF"
END IF
ReadInfFile szInf$
szInf$ = ""
'' Can not run on versions less than 3.10.
IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 12 AND OnWindowsNT = 0 THEN
'' Check if Win32s is partially installed
sz$ = GetIniKeyString (DESTSYS$ + "WIN32S.INI", "Win32s", "Setup")
'' If WIN32S.INI specifies Win32s Setup=0, then force complete Win32s file overwrite
IF sz$ = "0" THEN
ERR = 5
GOTO QUIT
END IF
'' If WIN32S.INI is missing, try and reinstall Win32s files/recreate WIN32S.INI
IF sz$ <> "1" THEN
ERR = 5
GOTO QUIT
END IF
'' If Win32s is already installed, get running version number
i% = DoesFileExist( DESTSYS$ + "W32SYS.DLL", femExists )
IF i% = 1 THEN
i% = IsWin32sLoaded( szOldVer$ )
ENDIF
IF i% = 0 THEN
ERR = 5
GOTO QUIT
END IF
END IF
WELCOME:
sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOSUB ASKQUIT
GOTO WELCOME
END IF
GETPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", HELP_3, HELPPROC$)
DEST$ = GetSymbolValue("EditTextOut")
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 WELCOME
ELSE
GOSUB ASKQUIT
GOTO GETPATH
END IF
Install
sz$ = UIStartDlg(CUIDLL$, RESTARTDLG, "FInfoDlgProc", 0, "")
IF sz$ = "CONTINUE" THEN
i% = ExitWindowsExec( GetWindowsDir() + "_MSRSTRT.EXE", "_MSSETUP.BAT" )
ENDIF
QUIT:
ON ERROR GOTO ERRQUIT
IF ERR = 0 THEN
dlg% = EXITSUCCESS
ELSEIF ERR = STFQUIT THEN
dlg% = EXITQUIT
ELSEIF ERR = 5 THEN
dlg% = EXITWIN32S
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("Setup sources were corrupted, call 555-1212!", "Setup Message", 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.
'*************************************************************************
SUB Install STATIC
SrcDir$ = GetSymbolValue("STF_SRCDIR")
CreateDir DEST$, cmoNone
OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
WriteToLogFile ""
WriteToLogFile " User chose as destination directory: '" + DEST$ + "'"
WriteToLogFile ""
WriteToLogFile "May have had to create the directory: " + DEST$
WriteToLogFile ""
WriteToLogFile "Windows directory: " + GetWindowsDir
WriteToLogFile ""
WriteToLogFile "Windows directory: " + GetWindowsSysDir
WriteToLogFile ""
'// Create directories
newDir$ = DEST$
CreateDir newDir$, cmoNone
WinDir$ = GetWindowsDir()
WinSysDir$ = GetWindowsSysDir()
IF OnWindowsNT <> 0 THEN
WinSysDir$ = WinDir$ +"System32\"
END IF
'// Install runtime libraries
version% = GetWindowsMinorVersion()
AddSectionFilesToCopyList "Bin", SrcDir$, DEST$
IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 12 AND OnWindowsNT = 0 THEN
AddSectionFilesToCopyList "win32s", SrcDir$, WinSysDir$
ELSE
AddSectionFilesToCopyList "Runtime95", SrcDir$, WinSysDir$
END IF
AddSectionFilesToCopyList "Fonts", SrcDir$, WinSysDir$
'' Check windrive diskspace
SizeReq& = GetCopyListCost ("","", "")
IF SizeReq& <> 0 THEN
sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
END
END IF
'// Copy files
CopyFilesInCopyList
IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 12 THEN
Run( "regsvr32 /s " + SrcDir$ + "\runtime\win32s\mfc40.dll" )
Run( "regsvr32 /s " + SrcDir$ + "\runtime\win32s\olepro32.dll" )
END IF
sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", 0, "")
Register
UIPop 1
'// Register fonts in windows
CreateIniKeyValue "win.ini", "fonts", "Comic Sans MS (True Type)", "COMIC.FOT", cmoOverwrite
'// Create program manager group
CreateProgmanGroup "Lingua Land", "", cmoNone
ShowProgmanGroup "Lingua Land", 1, cmoNone
sz$ = MakePath(DEST$,"Lingua.exe")
CreateProgmanItem "Lingua Land", "Lingua Land", sz$, "", cmoOverwrite
CloseLogFile
END SUB
'**
'** Purpose:
'** Register OLE & ini files
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB Register STATIC
SrcDir$ = GetSymbolValue("STF_SRCDIR")
WinDir$ = GetWindowsDir()
WinSysDir$ = GetWindowsSysDir()
'// Edit lingua.ini file in Windows directory
ini$ = MakePath(WinDir$, "Lingua.ini")
CreateIniKeyValue ini$, "Main", "Learn", LangLearn$, cmoOverwrite
NativeLanguage
' Create pathes
value$ = MakePath(SrcDir$,"data\")
CreateIniKeyValue ini$, "Path", "Data", value$, cmoOverwrite
CreateIniKeyValue ini$, "Path", "bin", Dest$ +"\", cmoOverwrite
value$ = MakePath(SrcDir$,"config\")
CreateIniKeyValue ini$, "Path", "config", value$, cmoOverwrite
value$ = MakePath(SrcDir$,"picture\")
CreateIniKeyValue ini$, "Path", "picture", value$, cmoOverwrite
value$ = MakePath(SrcDir$,"sound\")
CreateIniKeyValue ini$, "Path", "sound", value$, cmoOverwrite
' Add fonts
CreateIniKeyValue ini$, "Font", "usa", "Comic Sans MS", cmoOverwrite
CreateIniKeyValue ini$, "font", "pl", "Arial CE,238", cmoOverwrite
CreateIniKeyValue ini$, "font", "tr", "Arial,162", cmoOverwrite
CreateIniKeyValue ini$, "font", "rus", "Arial Cyr,204", cmoOverwrite
' register components
sz$ = MakePath(DEST$,"Animate.dll")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Baloon.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Cartoon.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Cross.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Fallword.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Garden.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Grama.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Label.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"peter.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Crosscom.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"shoot.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"totlscor.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"txtstore.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"factory.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"Intro.ocx")
Run("regsvr32.exe /s " + sz$)
sz$ = MakePath(DEST$,"video32.ocx")
Run("regsvr32.exe /s " + sz$)
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
SUB NativeLanguage STATIC
ini$ = MakePath(GetWindowsDir(), "Lingua.ini")
lang$ = UCASE$(GetIniKeyString ("WIN.INI", "Intl", "sLanguage"))
native$ = "GB"
IF lang$ = "ENU" THEN
native$ = "USA"
ELSEIF lang$ = "ENG" THEN
native$ = "GB"
ELSEIF lang$ = "DEA" THEN
native$ = "D"
ELSEIF lang$ = "DEC" THEN
native$ = "D"
ELSEIF lang$ = "DEL" THEN
native$ = "D"
ELSEIF lang$ = "DEU" THEN
native$ = "D"
ELSEIF lang$ = "DES" THEN
native$ = "D"
ELSEIF lang$ = "FRB" THEN
native$ = "F"
ELSEIF lang$ = "FRL" THEN
native$ = "F"
ELSEIF lang$ = "FRA" THEN
native$ = "F"
ELSEIF lang$ = "FRS" THEN
native$ = "F"
ELSEIF lang$ = "PLK" THEN
native$ = "PL"
ELSEIF lang$ = "RUS" THEN
native$ = "RUS"
ELSEIF lang$ = "TRK" THEN
native$ = "TR"
ELSEIF lang$ = "DAN" THEN
native$ = "DK"
ELSEIF lang$ = "SVE" THEN
native$ = "S"
ELSEIF lang$ = "NOR" THEN
native$ = "N"
ELSEIF lang$ = "NON" THEN
native$ = "N"
ELSEIF lang$ = "FIN" THEN
native$ = "FIN"
ELSEIF lang$ = "ELL" THEN
native$ = "GR"
ELSEIF lang$ = "ESS" THEN
native$ = "E"
ELSEIF lang$ = "ESL" THEN
native$ = "E"
ELSEIF lang$ = "ESD" THEN
native$ = "E"
ELSEIF lang$ = "ESF" THEN
native$ = "E"
ELSEIF lang$ = "ESG" THEN
native$ = "E"
ELSEIF lang$ = "ESO" THEN
native$ = "E"
ELSEIF lang$ = "ESC" THEN
native$ = "E"
ELSEIF lang$ = "ESM" THEN
native$ = "E"
ELSEIF lang$ = "ESA" THEN
native$ = "E"
ELSEIF lang$ = "ESZ" THEN
native$ = "E"
ELSEIF lang$ = "ESR" THEN
native$ = "E"
ELSEIF lang$ = "ESP" THEN
native$ = "E"
ELSEIF lang$ = "ESY" THEN
native$ = "E"
ELSEIF lang$ = "ESV" THEN
native$ = "E"
ELSEIF lang$ = "ESN" THEN
native$ = "E"
ELSEIF lang$ = "ITA" THEN
native$ = "I"
ELSEIF lang$ = "ITS" THEN
native$ = "I"
ELSEIF lang$ = "PTB" THEN
native$ = "P"
ELSEIF lang$ = "PTG" THEN
native$ = "P"
ELSEIF lang$ = "HUN" THEN
native$ = "H"
ELSEIF lang$ = "CSY" THEN
native$ = "CZ"
ELSEIF lang$ = "SKY" THEN
native$ = "SL"
ELSEIF lang$ = "ROM" THEN
native$ = "RO"
ELSEIF lang$ = "BGR" THEN
native$ = "BG"
ENDIF
CreateIniKeyValue ini$, "Main", "Native", native$, cmoOverwrite
END SUB