home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / polskie / progel / profax / disk1 / setup.ms_ / setup.bin
Text File  |  1996-03-13  |  9KB  |  310 lines

  1. '**************************************************************************
  2. '*                       PROFAX Demo Setup
  3. '**************************************************************************
  4.  
  5. ''$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. '' dodane dla powiΩkszenia okna setup
  11. CONST WS_VIVIBLE = &H10000000
  12. CONST WS_BORDER  = &H00800000
  13. CONST WS_CLIPCHILDREN = &H02000000
  14. CONST GWL_STYLE = -16
  15. CONST SW_SHOWMAXIMIZED = 3
  16.  
  17. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  18. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  19.  
  20. '' funkcje pomocnicze z mojej biblioteki
  21. DECLARE FUNCTION Start LIB "cshlp.dll" ( sz1$, sz2$ ) AS INTEGER
  22. ''DECLARE FUNCTION ProfaxDrvOptions LIB "cshlp.dll" ( hWnd% ) AS INTEGER
  23. DECLARE FUNCTION ModemOptions LIB "cshlp.dll" ( hWnd%, szDastPath$ ) AS INTEGER
  24. '' funkcja instaluj╣ca share.exe
  25. DECLARE FUNCTION InstallShareExe LIB "cshlp.dll" ( hWnd% ) AS INTEGER
  26.  
  27. ''Dialog ID's
  28. CONST WELCOME       = 100
  29. CONST ASKQUIT       = 200
  30. CONST DESTPATH      = 300
  31. CONST EXITFAILURE   = 400
  32. CONST EXITQUIT      = 600
  33. CONST EXITSUCCESS   = 700
  34. CONST APPHELP       = 900
  35. CONST BADPATH       = 6400
  36. CONST CDBADNAME     = 7700
  37. CONST COMDLG        = 101
  38. CONST PROTECTDLG    = 102
  39. CONST CUSTOMERINFO  = 104
  40. CONST CONFIRMDLG    = 106
  41. CONST PROTECTHELP   = 107
  42.  
  43. ''Bitmap ID
  44. CONST LOGO = 1
  45.  
  46. GLOBAL DEST$        ''Default destination directory.
  47. GLOBAL OPTBTRV$
  48. GLOBAL OPTCOM$
  49. GLOBAL hWnd%
  50. GLOBAL strProfaxU$
  51. GLOBAL strProfaxL$
  52. GLOBAL strGroupName$
  53.  
  54. DECLARE SUB Install
  55. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  56. DECLARE FUNCTION CatStringSpaces( szStr$ ) AS STRING
  57.  
  58. INIT:
  59.       '' powiΩkszenie okna
  60.     hWnd%=HwndFrame()
  61.     wi&=SetWindowLong(hWnd%, GWL_STYLE, WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  62.     wj%=ShowWindow(hWnd%, SW_SHOWMAXIMIZED)
  63.     
  64.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  65.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  66.  
  67.     SetBitmap CUIDLL$, LOGO
  68. ''    SetTitle "Instalacja PROFAX"
  69.  
  70.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  71.     IF szInf$ = "" THEN
  72.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  73.     END IF
  74.     ReadInfFile szInf$
  75.  
  76.     DEST$ = "C:\PROFAX"
  77.     strProfaxU$ = "PROFAX"
  78.     strProfaxL$ = "profax"
  79.     strGroupName$ = "Profax"
  80.     OPTBTRV$ = "/m:48 /p:4096 /b:54"
  81.     OPTCOM$ = "3"
  82.     COMNAME$ = ""
  83.     
  84.  
  85.     mv% = GetWindowsMajorVersion()
  86.     nv% = GetWindowsMinorVersion()
  87.     IF  mv% < 3 OR ( mv% = 3 AND nv% < 10 ) THEN
  88.         i% = DoMsgBox("Wersja systemu operacyjnego Windows"+CHR$(153)+" musi byµ przynajmniej 3.1", "Stop instalacji", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  89.         END
  90.     END IF    
  91.  
  92.  
  93. GETPATH:
  94.     SetSymbolValue "EditTextIn", DEST$
  95.     SetSymbolValue "EditFocus", "END"
  96. GETPATHL1:
  97.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  98.     DEST$ = GetSymbolValue("EditTextOut")
  99.  
  100.     IF sz$ = "CONTINUE" THEN
  101.         IF IsDirWritable(DEST$) = 0 THEN
  102.             GOSUB BADPATH
  103.             GOTO GETPATHL1
  104.         END IF
  105.         UIPop 1
  106.     ELSEIF sz$ = "REACTIVATE" THEN
  107.         GOTO GETPATHL1
  108.     ELSE
  109.         GOSUB ASKQUIT
  110.         GOTO GETPATH
  111.     END IF
  112.  
  113.  
  114. COM:
  115.     SetSymbolValue "RadioDefault", OPTCOM$
  116. COM1:
  117.     sz$ = UIStartDlg(CUIDLL$, COMDLG, "FRadioDlgProc", APPHELP, HELPPROC$)
  118.     OPTCOM$ = GetSymbolValue("ButtonChecked")
  119.  
  120.     IF sz$ = "CONTINUE" THEN
  121.         UIPop(1)
  122.     ELSEIF sz$ = "REACTIVATE" THEN
  123.         GOTO COM1
  124.     ELSEIF sz$ = "BACK" THEN
  125.         UIPop 1
  126.         GOTO GETPATH
  127.     ELSE
  128.         GOSUB ASKQUIT
  129.         GOTO COM
  130.     END IF
  131.     COMNAME$ = "COM" + OPTCOM$
  132.  
  133. CONFIRM:
  134.     SetSymbolValue "ConfirmTextIn", DEST$
  135.     AddListItem "ConfirmTextIn", COMNAME$
  136. CONFIRM1:
  137.     sz$ = UIStartDlg(CUIDLL$, CONFIRMDLG, "FConfirmDlgProc", 0, "")
  138.     IF sz$ = "CONTINUE" THEN
  139.         UIPop(1)
  140.     ELSEIF sz$ = "REACTIVATE" THEN
  141.         GOTO CONFIRM1
  142.     ELSEIF sz$ = "BACK" THEN
  143.         UIPop 1
  144.         GOTO COM
  145.     ELSE
  146.         GOSUB ASKQUIT
  147.         GOTO CONFIRM
  148.     END IF
  149.     RemoveSymbol "ConfirmTextIn"
  150.  
  151.     Install
  152.  
  153.  
  154. QUIT:
  155.     ON ERROR GOTO ERRQUIT
  156.  
  157.     IF ERR = 0 THEN
  158.         dlg% = EXITSUCCESS
  159.     ELSEIF ERR = STFQUIT THEN
  160.         dlg% = EXITQUIT
  161.     ELSE
  162.         dlg% = EXITFAILURE
  163.     END IF
  164. QUITL1:
  165.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  166.     IF sz$ = "REACTIVATE" THEN
  167.         GOTO QUITL1
  168.     END IF
  169.     UIPop 1
  170.  
  171.     END
  172.  
  173. ERRQUIT:
  174.     i% = DoMsgBox("Pliki instalacyjne s╣ uszkodzone,\n zadzwo± pod numer (091)531-875!", "B│╣d instalacji", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  175.     END
  176.  
  177.  
  178.  
  179. BADNAME:
  180.     sz$ = UIStartDlg(CUIDLL$, CDBADNAME, "FInfo0DlgProc", 0, "")
  181.     IF sz$ = "REACTIVATE" THEN
  182.         GOTO BADNAME
  183.     END IF
  184.     UIPop 1
  185.     RETURN
  186.  
  187.  
  188. BADPATH:
  189.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  190.     IF sz$ = "REACTIVATE" THEN
  191.         GOTO BADPATH
  192.     END IF
  193.     UIPop 1
  194.     RETURN
  195.  
  196.  
  197.  
  198. ASKQUIT:
  199.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  200.  
  201.     IF sz$ = "EXIT" THEN
  202.         UIPopAll
  203.         END   ''ERROR STFQUIT
  204.     ELSEIF sz$ = "REACTIVATE" THEN
  205.         GOTO ASKQUIT
  206.     ELSE
  207.         UIPop 1
  208.     END IF
  209.     RETURN
  210.  
  211.  
  212.  
  213. '**
  214. '** Purpose:
  215. '**     Builds the copy list and performs all installation operations.
  216. '** Arguments:
  217. '**     none.
  218. '** Returns:
  219. '**     none.
  220. '*************************************************************************
  221. SUB Install STATIC
  222.  
  223.     strWinIni$ = "win.ini"
  224.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  225.     CreateDir DEST$, cmoNone
  226.  
  227.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  228.  
  229.     'szShareDir$ = GetWindowsDir()
  230.     'IF GetSymbolValue("STF_MODE") = "ADMIN" THEN
  231.     '    IF IsWindowsShared = 1 THEN
  232.     '        szShareDir$ = GetWindowsSysDir()
  233.     '    END IF
  234.     'END IF
  235.     szSystemDir$ = GetWindowsSysDir()
  236.     AddSectionFilesToCopyList "System", SrcDir$, szSystemDir$
  237.     
  238.     CopyFilesInCopyList
  239.  
  240.     dataPath$ = MakePath(DEST$, "DATA")
  241.     CreateDir dataPath$, cmoNone  
  242.  
  243.     CreateIniKeyValue strWinIni$, "btrieve", "options", OPTBTRV$, cmoVital OR cmoOverwrite
  244. ''    ini$ = MakePath(DEST$, "common.ini")
  245. ''    CreateIniKeyValue ini$, "telex", "com", OPTCOM$ , cmoOverwrite
  246.     
  247.     ' Zapis parametr≤w dirvera do win.ini
  248.     CreateIniKeyValue strWinIni$, strProfaxL$, "Sciezka aplikacji", DEST$, cmoVital OR cmoOverwrite
  249.     CreateIniKeyValue strWinIni$, strProfaxL$, "Baza abonentow", DEST$, cmoVital OR cmoOverwrite
  250.     CreateIniKeyValue strWinIni$, "PrinterPorts", strProfaxU, "PROFAXD,COM"+OPTCOM$+":,15,45", cmoVital OR cmoOverwrite
  251.     CreateIniKeyValue strWinIni$, "devices", strProfaxU, "PROFAXD,COM"+OPTCOM$+":", cmoVital OR cmoOverwrite
  252.  
  253.     i% = ModemOptions( hWnd%, DEST$ )
  254. ''    i% = ProfaxDrvOptions( hWnd% )
  255.     i% = InstallShareExe( hWnd% )
  256.         
  257.     CreateProgmanGroup strGroupName$, "", cmoNone
  258.     ShowProgmanGroup  strGroupName$, 1, cmoNone
  259.     CreateProgmanItem strGroupName$, "Pro-Fax", MakePath(DEST$,"profax.exe"), "", cmoOverwrite
  260.     CreateProgmanItem strGroupName$, "Profax Server", MakePath(DEST$,"faxserv.exe"), "", cmoOverwrite
  261.  
  262. ''    CloseLogFile
  263.  
  264. END SUB
  265.  
  266.  
  267.  
  268. '**
  269. '** Purpose:
  270. '**     Appends a file name to the end of a directory path,
  271. '**     inserting a backslash character as needed.
  272. '** Arguments:
  273. '**     szDir$  - full directory path (with optional ending "\")
  274. '**     szFile$ - filename to append to directory
  275. '** Returns:
  276. '**     Resulting fully qualified path name.
  277. '*************************************************************************
  278. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  279.     IF szDir$ = "" THEN
  280.         MakePath = szFile$
  281.     ELSEIF szFile$ = "" THEN
  282.         MakePath = szDir$
  283.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  284.         MakePath = szDir$ + szFile$
  285.     ELSE
  286.         MakePath = szDir$ + "\" + szFile$
  287.     END IF
  288. END FUNCTION
  289.  
  290.  
  291. '** Autor Piotr Staniewicz
  292. '** Funkcja eliminuje pocz╣tkowe i ko±cowe spacje w ci╣gu znak≤w
  293. '**************************************************************************
  294. FUNCTION CatStringSpaces(szStr$) STATIC AS STRING
  295.     DIM nBeg AS INTEGER, nEnd AS INTEGER
  296.     DIM l AS INTEGER
  297.     l = LEN(szStr$)    
  298.     FOR nBeg = 1 TO l
  299.         IF MID$(szStr$ , nBeg, 1) <> " " THEN
  300.             EXIT FOR
  301.         END IF
  302.     NEXT nBeg
  303.     FOR nEnd = l TO nBeg STEP -1
  304.         IF MID$(szStr$, nEnd, 1) <> " " THEN
  305.             EXIT FOR
  306.         END IF
  307.     NEXT nEnd
  308.     CatStringSpaces = MID$( szStr$, nBeg, nEnd - nBeg + 1 ) 
  309. END FUNCTION
  310.