home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 January / pcwk_01_1999.iso / Top20av / Avast / AVAST / ENG / AVAST.MS_ / AVAST.bin
Text File  |  1998-10-29  |  18KB  |  661 lines

  1. '**************************************************************************
  2. '* AVAST! Install          (c) 1995 Jindrich Kubec, Alwil Software  *
  3. '**************************************************************************
  4.  
  5. ''$DEFINE DEBUG  ''Define for script development/debugging
  6. '$DEFINE ENGLISH
  7.  
  8. '$INCLUDE 'setupapi.inc'
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME        = 100
  13. CONST ASKQUIT        = 200
  14. CONST DESTPATH        = 300
  15.  
  16. CONST IEXITFAILURE    = 400
  17. CONST IEXITQUIT        = 600
  18. CONST IEXITSUCCESS    = 700
  19.  
  20. CONST APPHELP        = 900
  21. CONST DEINSTME        = 1000
  22. CONST DEINSTDIFF    = 1100
  23. CONST REMOVABLEDISK    = 1200
  24.  
  25. CONST DEXITFAILURE    = 1300
  26. CONST DEXITQUIT        = 1400
  27. CONST DEXITSUCCESS    = 1500
  28.  
  29. CONST NOTPROGMAN    = 1600
  30.  
  31. CONST BADPATH        = 6400
  32.  
  33. CONST STF_ERROR_EXIT    = 2000
  34.  
  35. CONST AWL_Install    = 0
  36. CONST AWL_Delete    = 1
  37.  
  38. ''Bitmap ID
  39. CONST LOGO = 1
  40.  
  41. GLOBAL DEST$        ''Default destination directory.
  42. GLOBAL CUIDLL$
  43. GLOBAL WinDir$
  44. GLOBAL HELPPROC$
  45. GLOBAL instalace%
  46. GLOBAL SYSTEMDIR$
  47. GLOBAL shl%
  48.  
  49. DECLARE SUB Bad_path
  50. DECLARE SUB NeedFileDialog(fname$)
  51. DECLARE SUB Install
  52. DECLARE FUNCTION NeedFile (fname$, action%) AS INTEGER
  53. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  54. DECLARE FUNCTION FindGroup LIB "mscuistf.dll" (szDir$, szGroup$) AS INTEGER
  55. DECLARE FUNCTION IsDevice LIB "mscuistf.dll" (szDir$, szDevice$) AS INTEGER
  56. DECLARE FUNCTION DeleteDevice LIB "mscuistf.dll" (szDir$, szDevice$) AS INTEGER
  57. DECLARE FUNCTION RemoveProgManItem LIB "mscuistf.dll" (szItem$) AS INTEGER
  58. DECLARE FUNCTION RemoveProgManGroup LIB "mscuistf.dll" (szGroup$) AS INTEGER
  59. DECLARE FUNCTION IsPMShell LIB "mscuistf.dll" (szPath$) AS INTEGER
  60. DECLARE FUNCTION AWLangCall LIB "mscuistf.dll" (inst%) AS INTEGER
  61.  
  62.  
  63. INIT:
  64.  
  65.     CUIDLL$ = "mscuistf.dll"        ''Custom user interface dll
  66.     HELPPROC$ = "FHelpDlgProc"        ''Help dialog procedure
  67.     DEST$ = GetSymbolValue("STF_SRCDIR")
  68.     SYSTEMDIR$ = MakePath(GetWindowsDir(), "SYSTEM.INI")
  69.  
  70.     OpenLogFile MakePath(DEST$, "INSTALL.REP"), 1
  71.  
  72.     instalace% = 1
  73.     EXITFAILURE    =IEXITFAILURE
  74.     EXITQUIT    =IEXITQUIT
  75.     EXITSUCCESS    =IEXITSUCCESS
  76.  
  77.     SetBitmap CUIDLL$, LOGO
  78.     '$IFDEF ENGLISH
  79.         SetTitle "Avast! Install"
  80.     '$ELSE
  81.         SetTitle "Avast! Instalace"
  82.     '$ENDIF
  83.  
  84.     '$IFNDEF ENGLISH
  85.         vysl% = AWLangCall(AWL_Install)
  86.         WriteToLogFile("AWL_Install"+str$(vysl%))
  87.     '$ENDIF
  88.  
  89.     if IsDriveRemovable(DEST$) = 1 then
  90.         sz$ = UIStartDlg(CUIDLL$, REMOVABLEDISK, "FInfoDlgProc", APPHELP, HELPPROC$)
  91.         '$IFDEF ENGLISH
  92.             WriteToLogFile("Drive is removable")
  93.         '$ELSE
  94.             WriteToLogFile("Disk je vymenny")
  95.         '$ENDIF
  96.         UiPop 1
  97.         ERROR STF_ERROR_EXIT
  98.     else
  99.         '$IFDEF ENGLISH
  100.             WriteToLogFile("Drive is non-removable")
  101.         '$ELSE
  102.             WriteToLogFile("Disk neni vymenny")
  103.         '$ENDIF
  104.     end if
  105.  
  106.  
  107.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  108.     IF szInf$ = "" THEN
  109.         szInf$ = GetSymbolValue("STF_CWDDIR") + "AVAST.INF"
  110.     END IF
  111.     ReadInfFile szInf$
  112.  
  113. '$IFDEF DEBUG
  114.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  115.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  116.     IF IsDriveValid(WinDrive$) = 0 THEN
  117.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  118.         GOTO QUIT
  119.     END IF
  120. '$ENDIF ''DEBUG
  121.  
  122.     shl% = IsPMShell ( SYSTEMDIR$ )
  123.     if shl% = 0 then
  124.         '$IFDEF ENGLISH
  125.             WriteToLogFile("Shell is ProgMan")
  126.         '$ELSE
  127.             WriteToLogFile("Shell je ProgMan")
  128.         '$ENDIF
  129.     else
  130.         '$IFDEF ENGLISH
  131.             WriteToLogFile("Shell is not ProgMan")
  132.         '$ELSE
  133.             WriteToLogFile("Shell je kdovico")
  134.         '$ENDIF
  135.         sz$ = UIStartDlg(CUIDLL$, NOTPROGMAN, "FInfoDlgProc", APPHELP, HELPPROC$)
  136.         UIPop 1
  137.  
  138.     end if
  139.  
  140.     oldava% = IsDevice( SYSTEMDIR$, "awanti.386")
  141.  
  142.     isinst% = DoesIniKeyExist("WIN.INI", "AVAST!", "Install")
  143.  
  144.     cverze$ = GetIniKeyString("WIN.INI", "AVAST!", "Install")
  145.     cverze$ = mid$(cverze$,1,4)
  146.  
  147.     if (cverze = "1904") then
  148.         '$IFDEF ENGLISH
  149.             WriteToLogFile("VERSION: 7.70!")
  150.         '$ELSE
  151.             WriteToLogFile("VERZE: 7.70!")
  152.         '$ENDIF
  153.     DEINSTME:
  154.         instalace% = 0
  155.         EXITFAILURE    =DEXITFAILURE
  156.         EXITQUIT    =DEXITQUIT
  157.         EXITSUCCESS    =DEXITSUCCESS
  158.         '$IFDEF ENGLISH
  159.             SetTitle "Avast! Deinstall"
  160.         '$ELSE
  161.             SetTitle "Avast! Deinstalace"
  162.         '$ENDIF
  163.  
  164.         sz$ = UIStartDlg(CUIDLL$, DEINSTME, "FInfoDlgProc", APPHELP, HELPPROC$)
  165.         IF sz$ = "CONTINUE" THEN
  166.             UIPop 1
  167.         ELSE
  168.             GOSUB ASKQUIT
  169.             GOTO DEINSTME
  170.         END IF
  171.  
  172.         '$IFDEF ENGLISH
  173.             WriteToLogFile("*** DEINSTALLATION of current version ***")
  174.         '$ELSE
  175.             WriteToLogFile("*** DEINSTALACE stavajici verze ***")
  176.         '$ENDIF
  177.  
  178.         if shl% = 0 then
  179.  
  180.             a = RemoveProgManGroup("AVAST!")
  181.             WritetoLogFile("AVAST! Group Remove Status:"+str$(a))
  182.  
  183.             PROGMAN$ = MakePath (GetWindowsDir(), "PROGMAN.INI")
  184.             StartGroup$=STRING$(513,"-")
  185.  
  186.             a = FindGroup(PROGMAN$, StartGroup$)
  187.             if a = 1 then
  188.                 ShowProgManGroup StartGroup$, 1, cmoNone
  189.                 a = RemoveProgManItem("FGW")
  190.                 WriteToLogFile ("FGW Remove status:"+str$(a))
  191.                 a = RemoveProgManItem("SGW")
  192.                 WriteToLogFile ("SGW Remove status:"+str$(a))
  193.                 ShowProgManGroup StartGroup$, 2, cmoNone
  194.             end if
  195.         end if
  196.  
  197.         if oldava% = 1 then
  198.             
  199.             '$IFDEF ENGLISH    
  200.                 WriteToLogFile("DEVICE= exists")
  201.             '$ELSE
  202.                 WriteToLogFile("DEVICE= existuje")
  203.             '$ENDIF
  204.  
  205.             aa% = DeleteDevice ( SYSTEMDIR$, "awanti.386")
  206.             if aa% = 1 then
  207.                 '$IFDEF ENGLISH    
  208.                     WriteToLogFile("DEVICE= deleted")
  209.                 '$ELSE
  210.                     WriteToLogFile("DEVICE= smazano")
  211.                 '$ENDIF
  212.             else
  213.                 '$IFDEF ENGLISH    
  214.                     WriteToLogFile("DEVICE= not deleted")
  215.                 '$ELSE
  216.                     WriteToLogFile("DEVICE= nesmazano")
  217.                 '$ENDIF
  218.             end if
  219.         end if
  220.  
  221.         RemoveIniKey "WIN.INI", "Sounds", "AvastBadChecksum", cmoNone
  222.         RemoveIniKey "WIN.INI", "Sounds", "AvastFirstVirus", cmoNone
  223.  
  224.         RemoveIniSection SYSTEMDIR$, "AWANTI", cmoNone
  225.  
  226.         pmm$ = GetIniKeyString("WIN.INI", "AVAST!", "paging")
  227.  
  228.         if pmm$ <> "" then
  229.             CreateIniKeyValue SYSTEMDIR$, "386enh", "paging", pmm$, cmoOverwrite
  230.         end if
  231.  
  232.         pmm$ = GetIniKeyString("WIN.INI", "AVAST!", "TimerCriticalSection")
  233.  
  234.         if pmm$ <> "" then
  235.             CreateIniKeyValue SYSTEMDIR$, "386enh", "TimerCriticalSection", pmm$, cmoOverwrite
  236.         end if
  237.  
  238.         RemoveIniSection "WIN.INI", "Avast!", cmoNone
  239.  
  240.         '$IFDEF ENGLISH
  241.             WriteToLogFile("*** Fishished - uninstalled ***")
  242.         '$ELSE
  243.             WriteToLogFile("*** Konec - Odinstalovano ***")
  244.         '$ENDIF
  245.         GOTO QUIT
  246.         
  247.  
  248.     elseif (isinst = 1) OR (oldava% = 1) then
  249.         
  250.         '$IFDEF ENGLISH
  251.             WriteToLogFile("VERSION: Older than 7.70!!!")
  252.         '$ELSE
  253.             WriteToLogFile("VERZE: Starsi nez 7.70!!!")
  254.         '$ENDIF
  255.  
  256.     DEINSTDIFF:
  257.         sz$ = UIStartDlg(CUIDLL$, DEINSTDIFF, "FInfoDlgProc", APPHELP, HELPPROC$)
  258.         IF sz$ = "CONTINUE" THEN
  259.             UIPop 1
  260.         ELSE
  261.             GOSUB ASKQUIT
  262.             GOTO DEINSTDIFF
  263.         END IF
  264.  
  265.         '$IFDEF ENGLISH
  266.             WriteToLogFile("*** UPGRADING older version***")
  267.         '$ELSE
  268.             WriteToLogFile("*** PREINSTALACE starsi verze ***")
  269.         '$ENDIF
  270.         if oldava% = 1 then
  271.             '$IFDEF ENGLISH    
  272.                 WriteToLogFile("DEVICE= exists")
  273.             '$ELSE
  274.                 WriteToLogFile("DEVICE= existuje")
  275.             '$ENDIF
  276.  
  277.             aaa% = DeleteDevice ( SYSTEMDIR$, "awanti.386")
  278.             if aaa% = 1 then
  279.                 '$IFDEF ENGLISH    
  280.                     WriteToLogFile("DEVICE= deleted")
  281.                 '$ELSE
  282.                     WriteToLogFile("DEVICE= smazano")
  283.                 '$ENDIF
  284.             else
  285.                 '$IFDEF ENGLISH    
  286.                     WriteToLogFile("DEVICE= not deleted")
  287.                 '$ELSE
  288.                     WriteToLogFile("DEVICE= nesmazano")
  289.                 '$ENDIF
  290.             end if
  291.         end if
  292.  
  293.         if shl% = 0 then
  294.  
  295.             a = FRemoveProgManGroup("AVAST!", cmoNone)
  296.             WritetoLogFile("AVAST! Group Remove Status:"+str$(a))
  297.             PROGMAN$ = MakePath (GetWindowsDir(), "PROGMAN.INI")
  298.             StartGroup$=STRING$(513,"-")
  299.             a = FindGroup(PROGMAN$, StartGroup$)
  300.             if a = 1 then
  301.                 ShowProgManGroup StartGroup$, 1, cmoNone
  302.                 a = RemoveProgManItem("FGW")
  303.                 WriteToLogFile ("FGW Remove status:"+str$(a))
  304.                 a = RemoveProgManItem("SGW")
  305.                 WriteToLogFile ("SGW Remove status:"+str$(a))
  306.                 ShowProgManGroup StartGroup$, 2, cmoNone
  307.  
  308.             end if
  309.         end if
  310.  
  311.         '$IFDEF ENGLISH
  312.             WriteToLogFile("*** Now - the installation ***")
  313.         '$ELSE
  314.             WriteToLogFile("*** Nasleduje instalace ***")
  315.         '$ENDIF
  316.  
  317.     end if
  318.  
  319.  
  320.  
  321.  
  322.  
  323. WELCOME:
  324.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  325.     IF sz$ = "CONTINUE" THEN
  326.         UIPop 1
  327.     ELSE
  328.         GOSUB ASKQUIT
  329.         GOTO WELCOME
  330.     END IF
  331.  
  332.  
  333. GETPATH:
  334.     SetSymbolValue "EditTextIn", DEST$
  335.     SetSymbolValue "EditFocus", "END"
  336. GETPATHL1:
  337.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  338.     DEST$ = GetSymbolValue("EditTextOut")
  339.  
  340.     IF sz$ = "CONTINUE" THEN
  341.         IF IsDirWritable(DEST$) = 0 THEN
  342.             Bad_path
  343.             GOTO GETPATHL1
  344.         END IF
  345.         IF DoesDirExist(DEST$) = 0 THEN
  346.             Bad_path
  347.             GOTO GETPATHL1
  348.         END IF
  349.  
  350.         UIPop 1
  351.  
  352.     ELSEIF sz$ = "REACTIVATE" THEN
  353.         GOTO GETPATHL1
  354.  
  355.     ELSEIF sz$ = "BACK" THEN
  356.         UIPop 1
  357.         GOTO WELCOME
  358.     ELSE
  359.         GOSUB ASKQUIT
  360.         GOTO GETPATH
  361.     END IF
  362.  
  363.     CloseLogFile
  364.     OpenLogFile MakePath(DEST$, "INSTALL.REP"), 1
  365.  
  366.  
  367.     Install
  368.  
  369.  
  370. QUIT:
  371.     ON ERROR GOTO ERRQUIT
  372.  
  373.     IF ERR = 0 THEN
  374.         dlg% = EXITSUCCESS
  375.         '$IFDEF ENGLISH
  376.             WriteToLogFile "*** Install succesful."
  377.         '$ELSE
  378.             WriteToLogFile "*** Install probehl OK."
  379.         '$ENDIF
  380.     
  381.     ELSEIF ERR = STFQUIT THEN
  382.         dlg% = EXITQUIT
  383.         '$IFDEF ENGLISH
  384.             WriteToLogFile "*** Install terminated by user."
  385.         '$ELSE
  386.             WriteToLogFile "*** Install prerusen uzivatelem."
  387.         '$ENDIF
  388.     ELSE
  389.         dlg% = EXITFAILURE
  390.         '$IFDEF ENGLISH
  391.             WriteToLogFile "*** Install failed."
  392.         '$ELSE
  393.             WriteToLogFile "*** Install ukoncen chybou..."
  394.         '$ENDIF
  395.     END IF
  396.  
  397. QUITL1:
  398.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  399.     IF sz$ = "REACTIVATE" THEN
  400.         GOTO QUITL1
  401.     END IF
  402.     UIPop 1
  403.     '$IFNDEF ENGLISH
  404.         vysl% = AWLangCall(AWL_Delete)
  405.         WriteToLogFile("AWL_Delete"+str$(vysl%))
  406.     '$ENDIF
  407.     
  408.     WriteToLogFile ""
  409.     CloseLogFile
  410.  
  411.     END
  412. ERRQUIT:
  413.     '$IFDEF ENGLISH
  414.         i% = DoMsgBox("Setup sources were corrupted, call (+42-2)6855961!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  415.     '$ELSE
  416.         i% = DoMsgBox("Kdo vi, co se stalo? (+42-2)6855961!", "Divna chyba!!!", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  417.     '$ENDIF
  418.  
  419.     '$IFDEF ENGLISH
  420.         WriteToLogFile "*** Install collapsed ***"
  421.     '$ELSE
  422.         WriteToLogFile "*** Install zkolaboval ***"
  423.     '$ENDIF
  424.  
  425.     '$IFNDEF ENGLISH
  426.         vysl% = AWLangCall(AWL_Delete)
  427.         WriteToLogFile("AWL_Delete"+str$(vysl%))
  428.     '$ENDIF
  429.  
  430.     WriteToLogFile ""
  431.     CloseLogFile
  432.     END
  433.  
  434.  
  435.  
  436. ASKQUIT:
  437.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  438.  
  439.     IF sz$ = "EXIT" THEN
  440.         UIPopAll
  441.         ERROR STFQUIT
  442.     ELSEIF sz$ = "REACTIVATE" THEN
  443.         GOTO ASKQUIT
  444.     ELSE
  445.         UIPop 1
  446.     END IF
  447.     RETURN
  448.  
  449. SUB Bad_path STATIC
  450. BP1:
  451.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  452.     IF sz$ = "REACTIVATE" THEN
  453.         GOTO BP1
  454.     END IF
  455.     UIPop 1
  456. END SUB
  457.  
  458. SUB NeedFileDialog (fname$) STATIC
  459. NF1:
  460.     '$IFDEF ENGLISH
  461.         i% = DoMsgBox("File "+fname$+" not found!!!", "Missing file!", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  462.     '$ELSE
  463.         i% = DoMsgBox("Soubor "+fname$+" nenalezen!!!", "Chybi soubor!", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  464.     '$ENDIF
  465. END SUB
  466.  
  467.  
  468. FUNCTION NeedFile (fname$, action%) STATIC AS INTEGER
  469.     FullPath$ = MakePath(DEST$, fname$)
  470.     Pom% = DoesFileExist(FullPath$, femExists)
  471.     NeedFile = Pom%
  472.     IF Pom% = 0 THEN
  473.         '$IFDEF ENGLISH
  474.             WriteToLogFile "File " + FullPath$ + " not found."
  475.         '$ELSE
  476.             WriteToLogFile "Soubor " + FullPath$ + " nenalezen."
  477.         '$ENDIF
  478.  
  479.         IF ACTION = 0 THEN
  480.             NeedFileDialog(FullPath$)
  481.             UIPopAll
  482.             ERROR STF_ERROR_EXIT
  483.         END IF
  484.         GOTO NFKonec
  485.     END IF
  486.     Vers$ = GetVersionOfFile(FullPath$)
  487.     IF LEN(Vers$) <>0 THEN
  488.         '$IFDEF ENGLISH
  489.             WriteToLogFile "Version of file " + FullPath$ + " is " + Vers$
  490.         '$ELSE
  491.             WriteToLogFile "Verze souboru " + FullPath$ + " je " + Vers$
  492.         '$ENDIF
  493.     END IF
  494. NFKonec:
  495. END FUNCTION
  496.  
  497.  
  498. '**
  499. '** Purpose:
  500. '**     Builds the copy list and performs all installation operations.
  501. '** Arguments:
  502. '**     none.
  503. '** Returns:
  504. '**     none.
  505. '*************************************************************************
  506. SUB Install STATIC
  507.  
  508.     '$IFDEF ENGLISH
  509.         WriteToLogFile "AVAST! install LOG file"
  510.         WriteToLogFile ""
  511.  
  512.         WriteToLogFile "Processor type   :"+STR$(GetProcessorType())+"86"
  513.         WriteToLogFile "DOS version      :"+STR$(GetDOSMajorVersion())+"."+LTRIM$(STR$(GetDOSMinorVersion()))
  514.         WriteToLogFile "WINDOWS version  :"+STR$(GetWindowsMajorVersion())+"."+LTRIM$(STR$(GetWindowsMinorVersion()))
  515.         WriteToLogFile "Windows mode     :"+STR$(GetWindowsMode())
  516.         WriteToLogFile "Windows shared   :"+STR$(IsWindowsShared())
  517.         WriteToLogFile "SMARTdrv size    :"+STR$(GetConfigSmartdrvSize())
  518.         WriteToLogFile ""
  519.  
  520.         WriteToLogFile "User chose directory: '" + DEST$ + "'"
  521.         WriteToLogFile ""
  522.  
  523.         WriteToLogFile "Windows directory "+WinDir$
  524.     '$ELSE
  525.         WriteToLogFile "LOG soubor instalacniho programu pro AVAST!"
  526.         WriteToLogFile ""
  527.         WriteToLogFile "V pripade spatne instalace si prectete obsah"
  528.         WriteToLogFile "tohoto souboru. Pokud hodlate kontaktovat technickou"
  529.         WriteToLogFile "podporu, pripravte si vytisk tohoto souboru kvuli"
  530.         WriteToLogFile "urychleni nasi prace."
  531.         WriteToLogFile ""
  532.  
  533.         WriteToLogFile "Typ procesoru    :"+STR$(GetProcessorType())+"86"
  534.         WriteToLogFile "Verze DOSu       :"+STR$(GetDOSMajorVersion())+"."+LTRIM$(STR$(GetDOSMinorVersion()))
  535.         WriteToLogFile "Verze WINDOWS    :"+STR$(GetWindowsMajorVersion())+"."+LTRIM$(STR$(GetWindowsMinorVersion()))
  536.         WriteToLogFile "Mod Windows      :"+STR$(GetWindowsMode())
  537.         WriteToLogFile "Sdileni Windows  :"+STR$(IsWindowsShared())
  538.         WriteToLogFile "Velikost SMARTdrv:"+STR$(GetConfigSmartdrvSize())
  539.         WriteToLogFile ""
  540.  
  541.         WriteToLogFile "Uzivatel zvolil adresar: '" + DEST$ + "'"
  542.         WriteToLogFile ""
  543.  
  544.         WriteToLogFile "Windows adresar je "+WinDir$
  545.  
  546.     '$ENDIF
  547.  
  548.     Pom% = NeedFile ("AW3D.DLL", 0)
  549.     Pom% = NeedFile ("AWANTI.DLL",0)
  550.     Pom% = NeedFile ("AWGLOB.DLL",0)
  551.  
  552.     '$IFNDEF ENGLISH
  553.         Pom% = NeedFile ("AWLANG.DLL",0)
  554.     '$ENDIF
  555.  
  556.     Pom% = NeedFile ("FGWLIB.DLL",0)
  557.     Pom% = NeedFile ("FPTAB11.VBX",0)
  558.     Pom% = NeedFile ("LGUARD.VPS",0)
  559.     Pom% = NeedFile ("AVAST.386",0)
  560.     Pom% = NeedFile ("AWANTI.386",0)
  561.     AGW% = NeedFile ("AGW.EXE", 1)
  562.     FGW% = NeedFile ("FGW.EXE", 1)
  563.     LGW% = NeedFile ("LGW.EXE", 1)
  564.     SGW% = NeedFile ("SGW.EXE", 1)
  565.     SGWS%= NeedFile ("BADCHECK.WAV",1)
  566.     LGWS%= NeedFile ("FIRSTVIR.WAV",1)
  567.  
  568.     pm$ = GetIniKeyString(SYSTEMDIR$, "386enh", "paging")
  569.     CreateIniKeyValue "WIN.INI", "AVAST!", "paging", pm$, cmoOverwrite
  570.  
  571.     pm$ = GetIniKeyString(SYSTEMDIR$, "386enh", "TimerCriticalSection")
  572.     CreateIniKeyValue "WIN.INI", "AVAST!", "TimerCriticalSection", pm$, cmoOverwrite
  573.  
  574.     CreateSysIniKeyValue SYSTEMDIR$, "386enh", "device", MakePath(DEST$,"awanti.386")+"     ;AVAST! install", cmoOverwrite
  575.     CreateIniKeyValue SYSTEMDIR$, "386enh", "paging", "1     ;AVAST! install", cmoOverwrite
  576.     CreateIniKeyValue SYSTEMDIR$, "386enh", "TimerCriticalSection", "0     ;AVAST! install", cmoOverwrite
  577.     CreateIniKeyValue SYSTEMDIR$, "AWANTI", "DEF", "      ;AVAST! install", cmoOverwrite
  578.     CreateIniKeyValue SYSTEMDIR$, "AWANTI", "CONCURENT", "7     ;AVAST! install", cmoOverwrite
  579.     CreateIniKeyValue SYSTEMDIR$, "AWANTI", "VPS", MakePath(DEST$,"LGUARD.VPS     ;AVAST! install"), cmoOverwrite
  580.     CreateIniKeyValue SYSTEMDIR$, "AWANTI", "INI", MakePath(DEST$,"AVAST!.INI     ;AVAST! install"), cmoOverwrite
  581.  
  582.  
  583.     CreateIniKeyValue "WIN.INI", "AVAST!", "Install", "1904", cmoOverwrite
  584.  
  585.     SoundPath$="<none>"
  586.     IF SGWS% = 1 THEN
  587.         SoundPath$=MakePath(DEST$,"BADCHECK.WAV")
  588.     END IF
  589.     CreateIniKeyValue "WIN.INI", "Sounds", "AvastBadChecksum", SoundPath$+",AVAST:Bad Checksum     ;AVAST! install", cmoOverwrite
  590.  
  591.     SoundPath$="<none>"
  592.     IF LGWS% = 1 THEN
  593.         SoundPath$=MakePath(DEST$,"FIRSTVIR.WAV")
  594.     END IF
  595.     
  596.     CreateIniKeyValue "WIN.INI", "Sounds", "AvastFirstVirus", SoundPath$+",AVAST:First Virus Found     ;AVAST! install", cmoOverwrite
  597.  
  598.     if shl% = 0 then
  599.  
  600.         CreateProgmanGroup "AVAST!", "", cmoNone
  601.         ShowProgmanGroup  "AVAST!", 1, cmoNone
  602.         IF AGW% = 1 THEN
  603.             CreateProgmanItem "AVAST!", "AGW", MakePath(DEST$,"AGW.EXE"), "", cmoOverwrite
  604.         END IF
  605.         IF FGW% = 1 THEN
  606.             CreateProgmanItem "AVAST!", "FGW", MakePath(DEST$,"FGW.EXE"), ",4", cmoOverwrite
  607.         END IF
  608.         IF LGW% = 1 THEN
  609.             CreateProgmanItem "AVAST!", "LGW", MakePath(DEST$,"LGW.EXE"), "", cmoOverwrite
  610.         END IF
  611.         IF SGW% = 1 THEN
  612.             CreateProgmanItem "AVAST!", "SGW", MakePath(DEST$,"SGW.EXE"), "", cmoOverwrite
  613.         END IF
  614.         CreateProgmanItem "AVAST!", "Deinstall", MakePath(DEST$,"SETUP.EXE"), "", cmoOverwrite
  615.         ShowProgmanGroup  "AVAST!", 2, cmoNone
  616.         
  617.         PROGMAN$ = MakePath (GetWindowsDir(), "PROGMAN.INI")
  618.         StartGroup$=STRING$(513,"-")
  619.         a = FindGroup(PROGMAN$, StartGroup$)
  620.         if a = 1 then
  621.             ShowProgmanGroup  StartGroup$, 1, cmoNone
  622.             IF FGW% = 1 THEN
  623.                 CreateProgmanItem StartGroup$, "FGW", MakePath(DEST$,"FGW.EXE"), ",4", cmoOverwrite
  624.             END IF
  625.             IF SGW% = 1 THEN
  626.             CreateProgmanItem StartGroup$, "SGW", MakePath(DEST$,"SGW.EXE"), " , , , , , ,1", cmoOverwrite
  627.             END IF
  628.             ShowProgmanGroup  StartGroup$, 2, cmoNone
  629.  
  630.         end if
  631.     end if
  632.  
  633.  
  634.     
  635. END SUB
  636.  
  637.  
  638.  
  639. '**
  640. '** Purpose:
  641. '**     Appends a file name to the end of a directory path,
  642. '**     inserting a backslash character as needed.
  643. '** Arguments:
  644. '**     szDir$  - full directory path (with optional ending "\")
  645. '**     szFile$ - filename to append to directory
  646. '** Returns:
  647. '**     Resulting fully qualified path name.
  648. '*************************************************************************
  649. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  650.     IF szDir$ = "" THEN
  651.         MakePath = szFile$
  652.     ELSEIF szFile$ = "" THEN
  653.         MakePath = szDir$
  654.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  655.         MakePath = szDir$ + szFile$
  656.     ELSE
  657.         MakePath = szDir$ + "\" + szFile$
  658.     END IF
  659. END FUNCTION
  660.  
  661.