home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Magazin 1996 February / CD_02_96.BIN / demo / sentf / tools.ms_ / tools.ms
Text File  |  1995-08-02  |  18KB  |  614 lines

  1. '**************************************************************************
  2. '*                       Sentfactor Multimedia Tools Setup
  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. '$INCLUDE 'mscpydis.inc'
  12.  
  13.  
  14.  
  15. ''Dialog ID's
  16. CONST EDRIVE        = 1000
  17. CONST GDRIVE        = 1300
  18. CONST OPTIONS       =  800
  19. CONST BADG          = 1600
  20. CONST BADE          = 1800
  21. CONST ASKQUIT       =  200
  22. CONST APPHELP       =  900
  23. CONST EXITE         = 2000
  24. CONST EXITG         = 2200
  25. CONST QUITE         = 2300
  26. CONST QUITG         = 2700
  27. CONST FAILE         = 2800
  28. CONST FAILG         = 3000
  29. CONST ASKG          = 3100  
  30. CONST ASKE          =  600 
  31. CONST GETORGG       = 7700
  32. CONST GETORGE       = 7500
  33. CONST TOOBIGG       = 5300
  34. CONST TOOBIGE       = 6300
  35. CONST RESTARTE      = 1100
  36. CONST RESTARTIIE    = 1200
  37. CONST RESTARTD      =  300
  38. CONST RESTARTIID    =  700
  39.  
  40.  
  41.  
  42. ''Bitmap ID
  43. CONST LOGO = 1
  44.  
  45. GLOBAL DEST$        ''Default destination directory.
  46. GLOBAL OPTCUR$      ''Option selection from option dialog.
  47. GLOBAL NAM$         ''User Name
  48. GLOBAL FIRM$        ''Company Name
  49. GLOBAL WinDir$
  50. GLOBAL WinSysDir$
  51. GLOBAL WINDRIVE$    ''Windows Drive Letter VFW
  52. GLOBAL CHECKSTATES$ ''VFW
  53. GLOBAL RUNTIME$     ''VFW
  54. GLOBAL AVITOOLS$    ''VFW
  55. GLOBAL MDKTOOLS$    ''VFW
  56. GLOBAL TOOLS$       ''VFW
  57. GLOBAL MinorVer%
  58. GLOBAL OnNT$
  59.  
  60.  
  61. SrcDir$ = GetSymbolValue("STF_SRCDIR")
  62. WinDir$ = GetWindowsDir()
  63. WinSysDir$ = GetWindowsSysDir()
  64.  
  65. DECLARE SUB Install
  66. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  67. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  68. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  69. DECLARE SUB Reboot LIB "iniupd.dll"
  70. DECLARE FUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  71.  
  72.  
  73. INIT:
  74.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  75.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  76.     
  77.     WIN32ENABLED% = 0
  78.     MajorVer% = GetWindowsMajorVersion()
  79.     MinorVer% = GetWindowsMinorVersion()
  80.     Processor% = GetProcessorType()
  81.  
  82.     
  83.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  84.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  85.         END
  86.     END IF
  87.  
  88. 'Prevents installation on 286
  89.     IF Processor% < 3 THEN
  90.     i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  91.     END
  92.     END IF
  93.  
  94.  
  95.      ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  96.     IF OnWindowsNT() THEN
  97.       OnNT$ = "TRUE"
  98.       WowVersion$ = GetVersionOfFile(WinDir$ + "system32\wowexec.exe")
  99.       IF WowVersion$ = "" THEN
  100.          i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  101.          END
  102.       END IF
  103.     END IF
  104.  
  105.     SetBitmap CUIDLL$, LOGO
  106.     SetTitle "Sentfactor Multimedia Tools Lite Setup"
  107.  
  108.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  109.     IF szInf$ = "" THEN
  110.         szInf$ = GetSymbolValue("STF_CWDDIR") + "TOOLS.INF"
  111.     END IF
  112.     ReadInfFile szInf$
  113.  
  114.     OPTCUR$ = "2"
  115.     DEST$ = "C:\SENTLITE"
  116.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  117.     
  118.  
  119. '$IFDEF DEBUG
  120.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  121.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  122.     IF IsDriveValid(WinDrive$) = 0 THEN
  123.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  124.         GOTO QUIT
  125.     END IF
  126. '$ENDIF ''DEBUG
  127.  
  128.  
  129. OPTION:
  130.     SetSymbolValue "RadioDefault", OPTCUR$
  131. OPTL1:
  132.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  133.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  134.  
  135.  
  136.     IF sz$ = "CONTINUE" THEN
  137.         UIPop(1)
  138.         IF OPTCUR$ = "1" THEN    '' Deutsch
  139.            GOTO G_SIZE
  140.         ELSE
  141.                 IF OPTCUR$ = "2" THEN       '' English
  142.                         GOTO E_SIZE
  143.                 END IF
  144.         END IF
  145.    
  146.     ELSE
  147.         GOSUB ASKQUIT
  148.         GOTO OPTION
  149.     END IF
  150.  
  151. G_SIZE:
  152.  
  153.        WantedDiskSize&=3900000
  154.        
  155.        DiskSize&=GetFreeSpaceForDrive(WINDRIVE$)
  156.        
  157.        If WantedDiskSpace& > DiskSize& THEN
  158.           GOSUB TOOBIG_G
  159.           ERROR STFQUIT
  160.        EndIf   
  161.  
  162.        GOTO G_DRIVE
  163.           
  164. E_SIZE:
  165.  
  166.         WantedDiskSize&=3900000
  167.        
  168.        DiskSize&=GetFreeSpaceForDrive(WINDRIVE$)
  169.        
  170.        If WantedDiskSpace& > DiskSize& THEN
  171.           GOSUB TOOBIG_E
  172.           ERROR STFQUIT
  173.        EndIf 
  174.     
  175.        GOTO E_DRIVE
  176.        
  177. G_DRIVE:
  178.     SetSymbolValue "EditTextIn", DEST$
  179.     SetSymbolValue "EditFocus", "END"
  180.  
  181. G_DRIVE1:       
  182.     sz$ = UIStartDlg(CUIDLL$, GDRIVE, "FEditDlgProc", APPHELP, HELPPROC$)
  183.     DEST$ = GetSymbolValue("EditTextOut")
  184.  
  185.     IF sz$ = "CONTINUE" THEN
  186.         IF IsDirWritable(DEST$) = 0 THEN
  187.             GOSUB BAD_G
  188.             GOTO G_DRIVE1
  189.         END IF
  190.  
  191.         UIPop 1
  192.         GOTO GETORG_G
  193.     
  194.     ELSE
  195.         GOSUB ASK_G
  196.         GOTO G_DRIVE
  197.     END IF
  198.  
  199.  
  200. E_DRIVE:
  201.     SetSymbolValue "EditTextIn", DEST$
  202.     SetSymbolValue "EditFocus", "END"
  203.  
  204. E_DRIVE1:
  205.     sz$ = UIStartDlg(CUIDLL$, EDRIVE, "FEditDlgProc", APPHELP, HELPPROC$)
  206.     DEST$ = GetSymbolValue("EditTextOut")
  207.  
  208.     IF sz$ = "CONTINUE" THEN
  209.         IF IsDirWritable(DEST$) = 0 THEN
  210.             GOSUB BAD_E
  211.             GOTO E_DRIVE1
  212.         END IF
  213.  
  214.         UIPop 1
  215.         GOTO GETORG_E
  216.  
  217.     ELSE
  218.         GOSUB ASK_E
  219.         GOTO E_DRIVE
  220.     END IF
  221.     
  222. GETORG_G:
  223.  
  224.     sz$ = UIStartDlg(CUIDLL$, GETORGG, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  225.     NAM$ = GetSymbolValue("NameOut")
  226.     FIRM$ = GetSymbolValue("OrgOut")
  227.     
  228.     IF sz$ = "CONTINUE" THEN
  229.            IF NAM$ = "" THEN
  230.                    i% = DoMsgBox("Bitte geben Sie Ihren Namen ein !", "Setup Meldung", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  231.                     GOTO GETORG_G
  232.            ELSEIF FIRM$ = "" THEN
  233.                    i% = DoMsgBox("Bitte geben Sie Ihren Firmennamen oder Ihren persönlichen Namen ein !", "Setup Meldung", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  234.                    GOTO GETORG_G
  235.            END IF                          
  236.            UIPop 1
  237.            GOTO INSTALL_B
  238.     ELSE
  239.    
  240.           GOSUB ASK_G
  241.           GOTO GETORG_G
  242.     END IF        
  243.    
  244.  
  245.  
  246. GETORG_E:
  247.  
  248. sz$ = UIStartDlg(CUIDLL$, GETORGE, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  249.      NAM$ = GetSymbolValue("NameOut")
  250.      FIRM$ = GetSymbolValue("OrgOut")
  251.      
  252.      IF sz$ = "CONTINUE" THEN
  253.      
  254.             IF NAM$ = "" THEN
  255.                      i% = DoMsgBox("Please fill in your full name.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  256.                       GOTO GETORG_E
  257.             ELSEIF FIRM$ = "" THEN
  258.                      i% = DoMsgBox("Please fill in either your company name or your last name", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  259.                      GOTO GETORG_E
  260.             END IF                          
  261.             
  262.        UIPop 1
  263.        GOTO INSTALL_B
  264.  
  265.      ELSE
  266.          GOSUB ASK_E
  267.          GOTO GETORG_E
  268.     ENDIF         
  269.  
  270.  
  271. INSTALL_B:
  272.  
  273.          Install
  274.     
  275.  
  276. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  277. '' else, it gives the user the choice
  278.     RESTRT% = RestartListEmpty ()
  279.     Exe$ = WinDir$ + "\_msrstrt.exe"
  280.     Batch$ = WinDir$ + "\_mssetup.bat"
  281.     empty$ = ""
  282.  
  283.  RESTART:
  284.     IF RESTRT% = 0 THEN
  285.        IF OPTCUR$ = "1" THEN
  286.                 sz$ = UIStartDlg(CUIDLL$, RESTARTD, "FInfo0DlgProc", 0, "")
  287.                 ELSE
  288.                 IF OPTCUR$ = "2" THEN
  289.                 sz$ = UIStartDlg(CUIDLL$, RESTARTE, "FInfo0DlgProc", 0, "")
  290.                 ENDIF    
  291.              ENDIF
  292.         
  293.              IF sz$ = "REACTIVATE" THEN
  294.            GOTO RESTART
  295.             ENDIF
  296.  
  297.     I% = ExitExecRestart ()
  298.     RemoveFile Exe$, cmoForce
  299.     RemoveFile Batch$, cmoForce
  300.     END 
  301.        ELSE
  302.  
  303.           IF OPTCUR$ = "1" THEN
  304.             sz$ = UIStartDlg(CUIDLL$, RESTARTIID, "FQuitDlgProc", 0, "")
  305.             ELSE
  306.       IF OPTCUR$ = "2" THEN
  307.             sz$ = UIStartDlg(CUIDLL$, RESTARTIIE, "FQuitDlgProc", 0, "")
  308.             ENDIF
  309.             ENDIF
  310.  
  311.      IF sz$ = "CONTINUE" THEN
  312.             I% = ExitWindowsExec (Exe$, empty$)
  313.                   IF I% = 0 THEN
  314.                 GOTO RESTART
  315.                   ELSE
  316.                 END
  317.                     ENDIF
  318.        ELSEIF sz$ = "EXIT" THEN
  319.              UIPopAll
  320.           END
  321.      ELSEIF sz$ = "REACTIVATE" THEN
  322.             GOTO RESTART
  323.      ELSE
  324.           UIPop 1
  325.      END IF
  326.         END IF
  327.        
  328.          
  329. QUIT:
  330.     ON ERROR GOTO ERRQUIT
  331.  
  332.     IF ERR = 0 THEN
  333.                       IF OPTCUR$ = "1" THEN
  334.                              
  335.                              dlg% = EXITG
  336.                       ELSE
  337.                       
  338.                       IF OPTCUR$ = "2" THEN
  339.                       
  340.                              dlg% = EXITE
  341.                       END IF
  342.                       END IF
  343.                       
  344.     ELSEIF ERR = STFQUIT THEN
  345.                       
  346.                       IF OPTCUR$ = "1" THEN
  347.                              
  348.                              dlg% = QUITG
  349.                       ELSE
  350.                       
  351.                       IF OPTCUR$ = "2" THEN
  352.                       
  353.                              dlg% = QUITE
  354.                       END IF
  355.                       END IF
  356.  
  357.     ELSE
  358.                       IF OPTCUR$ = "1" THEN
  359.                              
  360.                              dlg% = FAILG
  361.                       ELSE
  362.                       
  363.                       IF OPTCUR$ = "2" THEN
  364.                       
  365.                              dlg% = FAILE
  366.                       END IF
  367.                       END IF
  368.  
  369.     END IF
  370.     
  371. QUITL1:
  372.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  373.     IF sz$ = "REACTIVATE" THEN
  374.         GOTO QUITL1
  375.     END IF
  376.     UIPop 1
  377.  
  378.     END
  379.  
  380. ERRQUIT:
  381.     
  382.         IF OPTCUR$ = "1" THEN
  383.  
  384.                 i% = DoMsgBox("Setup Quelle defekt, bitte nehmen Sie mit Sentfactor Limited Kontakt auf.", "Setup Meldung", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  385.     
  386.         ELSE
  387.  
  388.          IF OPTCUR$ = "2" THEN
  389.            
  390.                 i% = DoMsgBox("Setup sources were corrupted, please contact Sentfactor Limited.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  391.     END IF
  392.  
  393.     END IF
  394. END
  395.  
  396. BAD_G:
  397.  
  398.     sz$ = UIStartDlg(CUIDLL$, BADG, "FInfo0DlgProc", 0, "")
  399.     IF sz$ = "REACTIVATE" THEN
  400.         GOTO BAD_G
  401.     END IF
  402.     UIPop 1
  403.     RETURN
  404.  
  405. BAD_E:
  406.  
  407.     sz$ = UIStartDlg(CUIDLL$, BADE, "FInfo0DlgProc", 0, "")
  408.     IF sz$ = "REACTIVATE" THEN
  409.         GOTO BAD_E
  410.     END IF
  411.     UIPop 1
  412.     RETURN
  413.     
  414. TOOBIG_G:
  415.  
  416.     SZ$ = UIStartDlg(CUIDLL$, TOOBIGG, "FInfo0DlgProc", 0, "")
  417.     IF sz$ = "REACTIVATE" THEN
  418.         GOTO TOOBIG_G
  419.     END IF
  420.     UIPop 1
  421.     RETURN
  422.  
  423.  TOOBIG_E:
  424.  
  425.     SZ$ = UIStartDlg(CUIDLL$, TOOBIGE, "FInfo0DlgProc", 0, "")
  426.     IF sz$ = "REACTIVATE" THEN
  427.         GOTO TOOBIG_E
  428.     END IF
  429.     UIPop 1
  430.     RETURN
  431.     
  432. ASKQUIT:
  433.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  434.  
  435.     IF sz$ = "EXIT" THEN
  436.         UIPopAll
  437.         ERROR STFQUIT
  438.     ELSEIF sz$ = "REACTIVATE" THEN
  439.         GOTO ASKQUIT
  440.     ELSE
  441.         UIPop 1
  442.     END IF
  443.     RETURN
  444.  
  445.  
  446. ASK_G:
  447.     sz$ = UIStartDlg(CUIDLL$, ASKG, "FQuitDlgProc", 0, "")
  448.  
  449.     IF sz$ = "EXIT" THEN
  450.         UIPopAll
  451.         ERROR STFQUIT
  452.     ELSEIF sz$ = "REACTIVATE" THEN
  453.         GOTO ASK_G
  454.     ELSE
  455.         UIPop 1
  456.     END IF
  457.     RETURN
  458.     
  459. ASK_E:
  460.     sz$ = UIStartDlg(CUIDLL$, ASKE, "FQuitDlgProc", 0, "")
  461.  
  462.     IF sz$ = "EXIT" THEN
  463.         UIPopAll
  464.         ERROR STFQUIT
  465.     ELSEIF sz$ = "REACTIVATE" THEN
  466.         GOTO ASK_E
  467.     ELSE
  468.         UIPop 1
  469.     END IF
  470.     RETURN
  471.  
  472. '**
  473. '** Purpose:
  474. '**     Builds the copy list and performs all installation operations.
  475. '** Arguments:
  476. '**     none.
  477. '** Returns:
  478. '**     none.
  479. '*************************************************************************
  480. SUB Install STATIC
  481.  
  482.     ClearCopyList
  483.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  484.     WinDir$ = GetWindowsDir()
  485.     WinSysDir$ = GetWindowsSysDir()
  486.     CreateDir DEST$, cmoNone
  487.     
  488.    
  489.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  490.     WriteToLogFile ""
  491.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  492.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  493.     WriteToLogFile "May have had to create the directory: " + DEST$
  494.     WriteToLogFile "OPTCUR$"
  495.     WriteToLogFile " STF_SRCDIR " + SrcDir$ + "  " + WinDir$ + "  " + WinSysDir$
  496.     WriteToLogFile ""
  497.  
  498. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  499.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  500.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  501.     END IF
  502.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  503.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  504.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  505.     AddSectionFilesToCopyList "Common", SrcDir$, DEST$
  506.     
  507.     IF OPTCUR$ = "1" THEN
  508.                         AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  509.     ELSE
  510.           IF OPTCUR$ = "2" THEN
  511.                       AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  512.       END IF
  513.       END IF
  514.  
  515.  
  516.     SetRestartDir WinDir$
  517.     CopyFilesInCopyList
  518.  
  519. ''Updating SENTFACT.INI
  520.  
  521.     IF OPTCUR$ = "1" THEN
  522.  
  523.         CreateIniKeyValue WinDir$ + "SENTFACT.INI", "language", "language", "0407", cmoOverwrite
  524.  
  525.     ELSE
  526.           IF OPTCUR$ = "2" THEN
  527.  
  528.         CreateIniKeyValue WinDir$ + "SENTFACT.INI", "language", "language", "0409", cmoOverwrite
  529.       END IF
  530.       END IF
  531.  
  532.  
  533.  
  534. ''Updating WIN.INI and SYSTEM.INI
  535.  
  536.         CreateIniKeyValue WinDir$ + "WIN.INI", "windows", "firm", firm$, cmoOverwrite
  537.         CreateIniKeyValue WinDir$ + "WIN.INI", "windows", "username", nam$, cmoOverwrite
  538.         CreateIniKeyValue WinDir$ + "SENTFACT.INI", "userdata", "firm", firm$, cmoOverwrite
  539.         CreateIniKeyValue WinDir$ + "SENTFACT.INI", "userdata", "username", nam$, cmoOverwrite
  540.  
  541. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  542.  
  543. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  544.     IF VflatdPresent() = 0 THEN
  545.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  546.     END IF
  547. END IF
  548.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  549.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  550.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  551.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  552.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  553.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  554.     IF I% = 0  THEN
  555.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  556.     END IF
  557.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  558.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  559.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  560.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  561.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  562.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  563.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  564.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  565.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  566.     
  567.     ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  568. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  569.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  570.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  571.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  572. END IF    ''NT and next version of Windows installation stop here.
  573.  
  574.      ''    Mplayer
  575.         CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  576.  
  577.     
  578.         CreateProgmanGroup "Sentfactor", "", cmoNone
  579.         ShowProgmanGroup  "Sentfactor", 1, cmoNone
  580.         CreateProgmanItem "Sentfactor", "Sentfactor Multimedia Tools Lite", MakePath(DEST$,"SMTLITE.exe"), "", cmoOverwrite
  581.  
  582.     Run ("profdisp.exe")   
  583.     
  584.  
  585.       
  586.     CloseLogFile
  587.  
  588. END SUB
  589.  
  590.  
  591.  
  592. '**
  593. '** Purpose:
  594. '**     Appends a file name to the end of a directory path,
  595. '**     inserting a backslash character as needed.
  596. '** Arguments:
  597. '**     szDir$  - full directory path (with optional ending "\")
  598. '**     szFile$ - filename to append to directory
  599. '** Returns:
  600. '**     Resulting fully qualified path name.
  601. '*************************************************************************
  602. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  603.     IF szDir$ = "" THEN
  604.         MakePath = szFile$
  605.     ELSEIF szFile$ = "" THEN
  606.         MakePath = szDir$
  607.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  608.         MakePath = szDir$ + szFile$
  609.     ELSE
  610.         MakePath = szDir$ + "\" + szFile$
  611.     END IF
  612. END FUNCTION
  613.  
  614.