home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / PCWK996.iso / ydpdemo / lingua.mst < prev    next >
Text File  |  1996-07-04  |  15KB  |  484 lines

  1. '**************************************************************************
  2. '*                       YDP demo setup application
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'msregdb.inc'
  10. '$INCLUDE 'msshared.inc'
  11.  
  12. ''Dialog ID's
  13. CONST WELCOME           = 100
  14. CONST ASKQUIT           = 200
  15. CONST DESTPATH          = 300
  16. CONST EXITFAILURE       = 400
  17. CONST EXITWIN32S    = 500
  18. CONST EXITQUIT          = 600
  19. CONST EXITSUCCESS       = 700
  20. CONST OPTIONS           = 800
  21. CONST APPHELP           = 900
  22. CONST RESTARTDLG    = 1000
  23. CONST GETLANG        = 1900
  24. CONST BADPATH           = 6400
  25. CONST SMALLWIN          = 2200
  26. CONST RESTART           = 2600
  27. CONST RESTARTII         = 2700
  28. CONST WAIT        = 5000
  29. CONST GETPASSWORD    = 7801
  30. CONST HELP_1           = 7802
  31. CONST HELP_2           = 7803
  32. CONST HELP_3           = 7804
  33.  
  34. ''Bitmap ID
  35. CONST LOGO = 1
  36.  
  37. GLOBAL DEST$            ''Default destination directory.
  38. GLOBAL DESTSYS$        '' system directory
  39. GLOBAL LANGUAGE$        ''Student language
  40. GLOBAL LangLearn$        '' Learn language
  41. GLOBAL CUIDLL$            ''Custom user interface dll
  42. GLOBAL HELPPROC$        ''Help dialog procedure
  43. GLOBAL VIDEO%
  44.  
  45. DECLARE SUB Install
  46. DECLARE SUB Register
  47. DECLARE SUB NativeLanguage
  48. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  49. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  50. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  51. DECLARE FUNCTION ShowWindow LIB "user" (hwnd%, flag%) AS INTEGER
  52. DECLARE FUNCTION IsWin32sLoaded LIB "INIUPD.DLL" (arg1$) AS INTEGER
  53.  
  54.  
  55.  
  56.  
  57. INIT:                            
  58.    ' Okno na caly ekran                   
  59.    i% = ShowWindow(HwndFrame(),3)
  60.     
  61.     DEST$ = "C:\YDPdemo"
  62.     LangLearn$ = ""
  63.     DESTSYS$ = GetWindowsSysDir()
  64.     
  65.     CUIDLL$ = "mscuistf.dll"   
  66.     HELPPROC$ = "FHelpDlgProc"          
  67.  
  68.     SetBitmap CUIDLL$, LOGO
  69.     SetTitle "YDP Multimedia Demo Setup"
  70.  
  71.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  72.     IF szInf$ = "" THEN
  73.         szInf$ = GetSymbolValue("STF_CWDDIR") + "Lingua.INF"
  74.     END IF
  75.     ReadInfFile szInf$
  76.     szInf$ = ""
  77.     VIDEO% = 0
  78.  
  79.     '' Can not run on versions less than 3.10.
  80.     IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 12 THEN
  81.         '' Check if Win32s is partially installed
  82.         sz$ = GetIniKeyString (DESTSYS$ + "WIN32S.INI", "Win32s", "Setup")
  83.         '' If WIN32S.INI specifies Win32s Setup=0, then force complete Win32s file overwrite
  84.         IF sz$ = "0" THEN
  85.         ERR = 5
  86.             GOTO QUIT
  87.         END IF
  88.         '' If WIN32S.INI is missing, try and reinstall Win32s files/recreate WIN32S.INI
  89.         IF sz$ <> "1" THEN
  90.         ERR = 5
  91.             GOTO QUIT
  92.         END IF
  93.  
  94.         '' If Win32s is already installed, get running version number
  95.         i% = DoesFileExist( DESTSYS$ + "W32SYS.DLL", femExists )
  96.         IF i% = 1 THEN
  97.             i% = IsWin32sLoaded( szOldVer$ )
  98.         ENDIF
  99.  
  100.         IF i% = 0 THEN
  101.         ERR = 5
  102.             GOTO QUIT
  103.         END IF
  104.  
  105.        ' Check if video is
  106.        dir$ = GetWindowsDir() + "system.ini"
  107.        sz$ = GetIniKeyString(dir$, "Drivers", "MSACM.msadpcm")
  108.        IF LEN(sz$) = 0 THEN 
  109.         VIDEO% = 1
  110.        ENDIF
  111.     END IF
  112.  
  113.  
  114.  
  115. WELCOME:                                                     
  116.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  117.     IF sz$ = "CONTINUE" THEN
  118.         UIPop 1
  119.     ELSE
  120.         GOSUB ASKQUIT
  121.         GOTO WELCOME
  122.     END IF
  123.  
  124.  
  125. GETPATH:
  126.     SetSymbolValue "EditTextIn", DEST$
  127.     SetSymbolValue "EditFocus", "END"
  128. GETPATHL1:
  129.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", HELP_3, HELPPROC$)
  130.     DEST$ = GetSymbolValue("EditTextOut")
  131.  
  132.     IF sz$ = "CONTINUE" THEN
  133.         IF IsDirWritable(DEST$) = 0 THEN
  134.             GOSUB BADPATH
  135.             GOTO GETPATHL1
  136.         END IF
  137.         UIPop 1
  138.     ELSEIF sz$ = "REACTIVATE" THEN
  139.         GOTO GETPATHL1
  140.     ELSEIF sz$ = "BACK" THEN
  141.         UIPop 1
  142.         GOTO WELCOME
  143.     ELSE
  144.         GOSUB ASKQUIT
  145.         GOTO GETPATH
  146.     END IF
  147.  
  148.                                          
  149.     LANGUAGE$ = "Polish"
  150.  
  151.  
  152.     Install     
  153.     sz$ = UIStartDlg(CUIDLL$, RESTARTDLG, "FInfoDlgProc", 0, "")
  154.     IF sz$ = "CONTINUE" THEN
  155.         i% = ExitWindowsExec( GetWindowsDir() + "_MSRSTRT.EXE", "_MSSETUP.BAT" )    
  156.     ENDIF
  157.  
  158. QUIT:
  159.     ON ERROR GOTO ERRQUIT
  160.  
  161.     IF ERR = 0 THEN
  162.         dlg% = EXITSUCCESS
  163.     ELSEIF ERR = STFQUIT THEN
  164.         dlg% = EXITQUIT
  165.     ELSEIF ERR = 5 THEN
  166.     dlg% = EXITWIN32S
  167.     ELSE
  168.         dlg% = EXITFAILURE
  169.     END IF
  170. QUITL1:
  171.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  172.     IF sz$ = "REACTIVATE" THEN
  173.         GOTO QUITL1
  174.     END IF
  175.     UIPop 1
  176.  
  177.     END
  178.  
  179. ERRQUIT:
  180.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  181.     END
  182.  
  183.  
  184.  
  185. BADPATH:
  186.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  187.     IF sz$ = "REACTIVATE" THEN
  188.         GOTO BADPATH
  189.     END IF
  190.     UIPop 1
  191.     RETURN
  192.  
  193.  
  194.  
  195. ASKQUIT:
  196.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  197.  
  198.     IF sz$ = "EXIT" THEN
  199.         UIPopAll
  200.         ERROR STFQUIT
  201.     ELSEIF sz$ = "REACTIVATE" THEN
  202.         GOTO ASKQUIT
  203.     ELSE
  204.         UIPop 1
  205.     END IF
  206.     RETURN
  207.        
  208.        
  209.        
  210. '**
  211. '** Purpose:
  212. '**     Builds the copy list and performs all installation operations.
  213. '** Arguments:
  214. '**     none.
  215. '** Returns:
  216. '**     none.
  217. '*************************************************************************
  218. SUB Install STATIC
  219.  
  220.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  221.     CreateDir DEST$, cmoNone
  222.  
  223.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  224.     WriteToLogFile ""
  225.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  226.     WriteToLogFile ""
  227.     WriteToLogFile "May have had to create the directory: " + DEST$
  228.     WriteToLogFile ""                    
  229.     WriteToLogFile "Windows directory: " + GetWindowsDir
  230.     WriteToLogFile ""                    
  231.     WriteToLogFile "Windows directory: " + GetWindowsSysDir
  232.     WriteToLogFile ""                    
  233.     
  234. '// Create directories    
  235.    newDir$ = DEST$
  236.    CreateDir newDir$, cmoNone    
  237.    WinDir$ = GetWindowsDir()
  238.    WinSysDir$ = GetWindowsSysDir()
  239.     
  240.  
  241. '//    Install runtime libraries
  242.    version% = GetWindowsMinorVersion()     
  243.  
  244.    AddSectionFilesToCopyList "Bin", SrcDir$, DEST$
  245.  
  246.    IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 12 THEN
  247.        AddSectionFilesToCopyList "win32s", SrcDir$, WinSysDir$
  248.    ELSE
  249.        AddSectionFilesToCopyList "Runtime95", SrcDir$, WinSysDir$
  250.    END IF
  251.        
  252.    AddSectionFilesToCopyList "Fonts", SrcDir$, WinSysDir$
  253.         
  254.    IF VIDEO% = 1 THEN                                             
  255. '//    Install Video
  256.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  257.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  258.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  259.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  260.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  261.     AddSectionFilesToCopyList "Indeo-ini", SrcDir$, WinDir$
  262.    ENDIF
  263.                                                      
  264. ''  Check windrive diskspace
  265.     SizeReq& = GetCopyListCost ("","", "")
  266.     IF SizeReq& <> 0 THEN
  267.         sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  268.         END
  269.     END IF
  270.  
  271. '// Copy files
  272.     
  273.    CopyFilesInCopyList
  274.            
  275.    IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 12 THEN
  276.        Run( "regsvr32 /s " + SrcDir$ + "\runtime\win32s\mfc40.dll" )
  277.        Run( "regsvr32 /s " + SrcDir$ + "\runtime\win32s\olepro32.dll" )
  278.    END IF
  279.  
  280.    sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", 0, "")          
  281.  
  282. '//     Register video    
  283.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  284.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  285.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))      
  286.  
  287.    Register   
  288.  
  289.    UIPop 1
  290.  
  291. '//    Register fonts in windows
  292.     CreateIniKeyValue "win.ini", "fonts", "Comic Sans MS (True Type)", "COMIC.FOT", cmoOverwrite
  293.     
  294.    IF VIDEO% = 1 THEN                                             
  295.         Run ("profdisp.exe")   
  296.    ENDIF
  297.  
  298. '//     Create program manager group 
  299.     CreateProgmanGroup "YDP Multimedia Demo", "", cmoNone
  300.     ShowProgmanGroup  "YDP Multimedia Demo", 1, cmoNone
  301.        sz$ = MakePath(DEST$,"ydpdemo.exe")
  302.        CreateProgmanItem "YDP Multimedia Demo", "YDP Multimedia Demo", sz$, "", cmoOverwrite
  303.    
  304.    CloseLogFile
  305.    
  306. END SUB
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313. '**
  314. '** Purpose:
  315. '**     Register OLE & ini files
  316. '** Arguments:
  317. '**     none.
  318. '** Returns:
  319. '**     none.
  320. '*************************************************************************
  321. SUB Register STATIC
  322.  
  323.  
  324.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  325.     WinDir$ = GetWindowsDir()
  326.     WinSysDir$ = GetWindowsSysDir()
  327.     
  328.  
  329. '//    Edit lingua.ini file in Windows directory  
  330.     ini$ = MakePath(WinDir$, "Lingua.ini")
  331.     CreateIniKeyValue ini$, "Main", "Learn", LangLearn$, cmoOverwrite
  332.     NativeLanguage 
  333.  
  334.     ' Create pathes
  335.     value$ = MakePath(SrcDir$,"data\")
  336.     CreateIniKeyValue ini$, "Path", "Data", value$, cmoOverwrite
  337.     CreateIniKeyValue ini$, "Path", "bin", Dest$ +"\", cmoOverwrite
  338.     value$ = MakePath(SrcDir$,"config\")
  339.     CreateIniKeyValue ini$, "Path", "config", value$, cmoOverwrite
  340.     value$ = MakePath(SrcDir$,"picture\")
  341.     CreateIniKeyValue ini$, "Path", "picture", value$, cmoOverwrite
  342.     value$ = MakePath(SrcDir$,"sound\")
  343.     CreateIniKeyValue ini$, "Path", "sound", value$, cmoOverwrite
  344.  
  345.     ' Add fonts
  346.     CreateIniKeyValue ini$, "Font", "usa", "Comic Sans MS", cmoOverwrite
  347.     CreateIniKeyValue ini$, "font", "pl", "Arial CE", cmoOverwrite
  348.  
  349.  
  350.     ' register components
  351.        sz$ = MakePath(DEST$,"Animate.dll")
  352.         Run("regsvr32.exe /s " + sz$)   
  353.        sz$ = MakePath(DEST$,"Baloon.ocx")
  354.         Run("regsvr32.exe /s " + sz$)   
  355.        sz$ = MakePath(DEST$,"Cartoon.ocx")
  356.         Run("regsvr32.exe /s " + sz$)   
  357.        sz$ = MakePath(DEST$,"Cross.ocx")
  358.         Run("regsvr32.exe /s " + sz$)   
  359.        sz$ = MakePath(DEST$,"Fallword.ocx")
  360.         Run("regsvr32.exe /s " + sz$)   
  361.        sz$ = MakePath(DEST$,"Garden.ocx")
  362.         Run("regsvr32.exe /s " + sz$)   
  363.        sz$ = MakePath(DEST$,"Grama.ocx")
  364.         Run("regsvr32.exe /s " + sz$)   
  365.        sz$ = MakePath(DEST$,"Label.ocx")
  366.         Run("regsvr32.exe /s " + sz$)   
  367.        sz$ = MakePath(DEST$,"peter.ocx")
  368.         Run("regsvr32.exe /s " + sz$)   
  369.        sz$ = MakePath(DEST$,"Crosscom.ocx")
  370.         Run("regsvr32.exe /s " + sz$)   
  371.        sz$ = MakePath(DEST$,"shoot.ocx")
  372.         Run("regsvr32.exe /s " + sz$)   
  373.        sz$ = MakePath(DEST$,"totlscor.ocx")
  374.         Run("regsvr32.exe /s " + sz$)   
  375.        sz$ = MakePath(DEST$,"txtstore.ocx")
  376.         Run("regsvr32.exe /s " + sz$)   
  377.        sz$ = MakePath(DEST$,"factory.ocx")
  378.         Run("regsvr32.exe /s " + sz$)   
  379.        sz$ = MakePath(DEST$,"Intro.ocx")
  380.         Run("regsvr32.exe /s " + sz$)   
  381.        sz$ = MakePath(DEST$,"video32.ocx")
  382.         Run("regsvr32.exe /s " + sz$)   
  383.  
  384.  
  385.    IF VIDEO% = 1 THEN                                             
  386. ''Updating WIN.INI and SYSTEM.INI
  387.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  388.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  389.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite
  390.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  391.     I% = DoesIniKeyExist (WinDir$ + "system.ini", "Drivers", "VIDC.RT21")
  392.     IF I% = 0  THEN
  393.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite
  394.     END IF
  395.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite
  396.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  397.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  398.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  399.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  400.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  401.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  402.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  403.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  404.   ENDIF
  405.  
  406. END SUB
  407.  
  408.  
  409.  
  410.  
  411. '**
  412. '** Purpose:
  413. '**     Appends a file name to the end of a directory path,
  414. '**     inserting a backslash character as needed.
  415. '** Arguments:
  416. '**     szDir$  - full directory path (with optional ending "\")
  417. '**     szFile$ - filename to append to directory
  418. '** Returns:
  419. '**     Resulting fully qualified path name.
  420. '*************************************************************************
  421. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  422.     IF szDir$ = "" THEN
  423.         MakePath = szFile$
  424.     ELSEIF szFile$ = "" THEN
  425.         MakePath = szDir$
  426.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  427.         MakePath = szDir$ + szFile$
  428.     ELSE
  429.         MakePath = szDir$ + "\" + szFile$
  430.     END IF
  431. END FUNCTION
  432.  
  433.  
  434.  
  435. SUB NativeLanguage STATIC 
  436.  
  437.     native$ = "GB"
  438.     native_epp$ = "GB"
  439.     
  440.     IF LANGUAGE$ = "German" THEN
  441.     native$ = "D"
  442.     native_epp$ = "D"
  443.     ELSEIF LANGUAGE$ = "Dennish" THEN
  444.     native$ = "GB"
  445.     native_epp$ = "DK"
  446.     ELSEIF LANGUAGE$ = "French" THEN
  447.     native$ = "F"
  448.     native_epp$ = "F"
  449.     ELSEIF LANGUAGE$ = "English" THEN
  450.     native$ = "GB"
  451.     native_epp$ = "GB"
  452.     ELSEIF LANGUAGE$ = "Polish" THEN
  453.     native$ = "PL"
  454.     native_epp$ = "PL"
  455.     ELSEIF LANGUAGE$ = "Russian" THEN
  456.     native$ = "RUS"
  457.     native_epp$ = "RUS"
  458.     ELSEIF LANGUAGE$ = "Finnish" THEN
  459.     native$ = "FIN"
  460.     native_epp$ = "FIN"
  461.     ELSEIF LANGUAGE$ = "Spanish" THEN
  462.     native$ = "E"
  463.     native_epp$ = "GB"
  464.     ELSEIF LANGUAGE$ = "Dutch" THEN
  465.     native$ = "NL"
  466.     native_epp$ = "NL"
  467.     ELSEIF LANGUAGE$ = "Turkish" THEN
  468.     native$ = "TR"
  469.     native_epp$ = "GB"
  470.     ENDIF
  471.  
  472.  
  473.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  474.     WinDir$ = GetWindowsDir()
  475.     WinSysDir$ = GetWindowsSysDir()
  476.     
  477.  
  478. '//    Edit lingua.ini file in Windows directory  
  479.     ini$ = MakePath(WinDir$, "Lingua.ini")
  480.     CreateIniKeyValue ini$, "Main", "Native", native$, cmoOverwrite
  481.     value$ = MakePath(SrcDir$,"demo\" + native$ + "\demo.exe")
  482.     CreateIniKeyValue ini$, "demo", "epp", value$, cmoOverwrite
  483.     
  484. END SUB