home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / polskie / progel / protlx / disk1 / setup.ms_ / setup.bin
Text File  |  1995-11-27  |  9KB  |  332 lines

  1. '**************************************************************************
  2. '*                       PRO-TLX Setup for Single User
  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 do konwersji bazy danych
  21. DECLARE FUNCTION ConvertTlxBase LIB "convert.dll" (szSrcPath$, szDstPath$, hWnd%) AS INTEGER
  22. DECLARE FUNCTION ConvertSubscrBase LIB "convert.dll" (szSrcPath$, szDstPath$, hWnd%) AS INTEGER
  23. '' funkcja instaluj╣ca share.exe
  24. DECLARE FUNCTION InstallShareExe LIB "convert.dll" ( hWnd% ) AS INTEGER
  25.  
  26. ''Dialog ID's
  27. CONST WELCOME       = 100
  28. CONST ASKQUIT       = 200
  29. CONST DESTPATH      = 300
  30. CONST EXITFAILURE   = 400
  31. CONST EXITQUIT      = 600
  32. CONST EXITSUCCESS   = 700
  33. CONST COMDLG        = 2500
  34. CONST CENTRALDLG    = 101
  35. CONST APPHELP       = 900
  36. CONST BADPATH       = 6400
  37. CONST CONVERT       = 7900
  38.  
  39. ''Bitmap ID
  40. CONST LOGO = 1
  41.  
  42. GLOBAL DEST$        ''Default destination directory.
  43. GLOBAL OPTBTRV$
  44. GLOBAL OPTCOM$
  45. GLOBAL OPTCENTRAL$
  46. ''GLOBAL CONVSTATES$
  47. GLOBAL OLDPATH$     ''îcie┐ka wersji PRO-TLX dla DOS-u
  48. GLOBAL CONVTLX$
  49. GLOBAL CONVSUB$
  50. GLOBAL hWnd%
  51.  
  52. DECLARE SUB Install
  53. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  54.  
  55. INIT:
  56.       '' powiΩkszenie okna
  57.     hWnd%=HwndFrame()
  58.     wi&=SetWindowLong(hWnd%, GWL_STYLE, WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  59.     wj%=ShowWindow(hWnd%, SW_SHOWMAXIMIZED)
  60.     
  61.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  62.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  63.  
  64.     SetBitmap CUIDLL$, LOGO
  65. ''    SetTitle "Instalacja PRO-TLX"
  66.  
  67.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  68.     IF szInf$ = "" THEN
  69.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  70.     END IF
  71.     ReadInfFile szInf$
  72.  
  73.     DEST$ = "C:\PRO-TLXW"
  74.     OPTBTRV$ = "/m:48 /p:4096 /b:54 /c"
  75.     OPTCOM$ = "1"
  76.     OPTCENTRAL$ = "1"
  77.     OLDPATH$ = "C:\PRO-TLX"
  78.     CONVTLX$ = "OFF"
  79.     CONVSUB$ = "OFF"
  80.  
  81. '$IFDEF DEBUG
  82.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  83.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  84.     IF IsDriveValid(WinDrive$) = 0 THEN
  85.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  86.         GOTO QUIT
  87.     END IF
  88. '$ENDIF ''DEBUG
  89.  
  90.  
  91. WELCOME:
  92.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  93.     IF sz$ = "CONTINUE" THEN
  94.         UIPop 1
  95.     ELSE
  96.         GOSUB ASKQUIT
  97.         GOTO WELCOME
  98.     END IF
  99.     
  100.  
  101.     mv% = GetWindowsMajorVersion()
  102.     nv% = GetWindowsMinorVersion()
  103.     IF  mv% < 3 OR ( mv% = 3 AND nv% < 10 ) THEN
  104.         i% = DoMsgBox("Wersja systemu operacyjnego Windows"+CHR$(153)+" musi byµ przynajmniej 3.1", "Stop instalacji", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  105.         END
  106.     END IF    
  107.  
  108.  
  109. GETPATH:
  110.     SetSymbolValue "EditTextIn", DEST$
  111.     SetSymbolValue "EditFocus", "END"
  112. GETPATHL1:
  113.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  114.     DEST$ = GetSymbolValue("EditTextOut")
  115.  
  116.     IF sz$ = "CONTINUE" THEN
  117.         IF IsDirWritable(DEST$) = 0 THEN
  118.             GOSUB BADPATH
  119.             GOTO GETPATHL1
  120.         END IF
  121.         UIPop 1
  122.     ELSEIF sz$ = "REACTIVATE" THEN
  123.         GOTO GETPATHL1
  124.     ELSE
  125.         GOSUB ASKQUIT
  126.         GOTO GETPATH
  127.     END IF
  128.  
  129.  
  130. COM:
  131.     SetSymbolValue "RadioDefault", OPTCOM$
  132. COM1:
  133.     sz$ = UIStartDlg(CUIDLL$, COMDLG, "FRadioDlgProc", APPHELP, HELPPROC$)
  134.     OPTCOM$ = GetSymbolValue("ButtonChecked")
  135.  
  136.     IF sz$ = "CONTINUE" THEN
  137.         UIPop(1)
  138.     ELSEIF sz$ = "REACTIVATE" THEN
  139.         GOTO COM1
  140.     ELSEIF sz$ = "BACK" THEN
  141.         UIPop 1
  142.         GOTO GETPATH
  143.     ELSE
  144.         GOSUB ASKQUIT
  145.         GOTO COM
  146.     END IF
  147.  
  148.  
  149. CENTRAL:
  150.     SetSymbolValue "RadioDefault", OPTCENTRAL$
  151. CENTRAL1:
  152.     sz$ = UIStartDlg(CUIDLL$, CENTRALDLG, "FRadioDlgProc", APPHELP, HELPPROC$)
  153.     OPTCENTRAL$ = GetSymbolValue("ButtonChecked")
  154.  
  155.     IF sz$ = "CONTINUE" THEN
  156.         UIPop(1)
  157.     ELSEIF sz$ = "REACTIVATE" THEN
  158.         GOTO CENTRAL1
  159.     ELSEIF sz$ = "BACK" THEN
  160.         UIPop 1
  161.         GOTO COM
  162.     ELSE
  163.         GOSUB ASKQUIT
  164.         GOTO CENTRAL
  165.     END IF
  166.  
  167.       
  168. CONVERT:      
  169.     SetSymbolValue "EditTextIn", OLDPATH$
  170.     SetSymbolValue "EditFocus", "END"
  171.     SetSymbolValue "CheckItemsIn", CONVTLX$
  172.     AddListItem  "CheckItemsIn", CONVSUB$
  173. CONVERT1:
  174.     sz$ = UIStartDlg(CUIDLL$, CONVERT, "FCustInstDlgProc", APPHELP, HELPPROC$)
  175.     CONVTLX$ = GetListItem("CheckItemsOut", 1)
  176.     CONVSUB$ = GetListItem("CheckItemsOut", 2)
  177.     OLDPATH$ = GetSymbolValue("EditTextOut")
  178.  
  179.     IF sz$ = "CONTINUE" THEN 
  180.         IF CONVTLX = "ON" OR CONVSUB = "ON" THEN
  181.             IF DoesDirExist(OLDPATH$) = 0 THEN
  182.                 GOSUB BADPATH
  183.                 GOTO GETPATHL1
  184.             END IF
  185.         END IF
  186.         UIPop(1)
  187.     ELSEIF sz$ = "REACTIVATE" THEN
  188.         GOTO CONVERT1
  189.     ELSEIF sz$ = "BACK" THEN
  190.         UIPop 1
  191.         GOTO CENTRAL
  192.     ELSE
  193.         GOSUB ASKQUIT
  194.         GOTO CONVERT
  195.     END IF
  196.  
  197.  
  198.     Install
  199.  
  200.  
  201. QUIT:
  202.     ON ERROR GOTO ERRQUIT
  203.  
  204.     IF ERR = 0 THEN
  205.         dlg% = EXITSUCCESS
  206.     ELSEIF ERR = STFQUIT THEN
  207.         dlg% = EXITQUIT
  208.     ELSE
  209.         dlg% = EXITFAILURE
  210.     END IF
  211. QUITL1:
  212.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  213.     IF sz$ = "REACTIVATE" THEN
  214.         GOTO QUITL1
  215.     END IF
  216.     UIPop 1
  217.  
  218.     END
  219.  
  220. ERRQUIT:
  221.     i% = DoMsgBox("Pliki instalacyjne s╣ uszkodzone,\n zadzwo± pod numer (091)877-151!", "B│╣d instalacji", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  222.     END
  223.  
  224.  
  225.  
  226. BADPATH:
  227.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  228.     IF sz$ = "REACTIVATE" THEN
  229.         GOTO BADPATH
  230.     END IF
  231.     UIPop 1
  232.     RETURN
  233.  
  234.  
  235.  
  236. ASKQUIT:
  237.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  238.  
  239.     IF sz$ = "EXIT" THEN
  240.         UIPopAll
  241.         END   ''ERROR STFQUIT
  242.     ELSEIF sz$ = "REACTIVATE" THEN
  243.         GOTO ASKQUIT
  244.     ELSE
  245.         UIPop 1
  246.     END IF
  247.     RETURN
  248.  
  249.  
  250.  
  251. '**
  252. '** Purpose:
  253. '**     Builds the copy list and performs all installation operations.
  254. '** Arguments:
  255. '**     none.
  256. '** Returns:
  257. '**     none.
  258. '*************************************************************************
  259. SUB Install STATIC
  260.  
  261.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  262.     CreateDir DEST$, cmoNone
  263.  
  264.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  265.  
  266.     szShareDir$ = GetWindowsDir()
  267.     IF GetSymbolValue("STF_MODE") = "ADMIN" THEN
  268.         IF IsWindowsShared = 1 THEN
  269.             szShareDir$ = GetWindowsSysDir()
  270.         END IF
  271.     END IF
  272.     AddSectionFilesToCopyList "Shared", SrcDir$, szShareDir$
  273.     
  274.     CopyFilesInCopyList
  275.  
  276.     dataPath$ = MakePath(DEST$, "DATA")
  277.     CreateDir dataPath$, cmoNone  
  278.  
  279.     ini$ = MakePath(DEST$, "TELEX.INI")
  280.     CreateIniKeyValue "WIN.INI", "btrieve", "options", OPTBTRV$, cmoVital OR cmoOverwrite
  281.     CreateIniKeyValue ini$, "telex", "com", OPTCOM$ , cmoOverwrite
  282.     CreateIniKeyValue ini$, "telex", "centrala", STR$( VAL(OPTCENTRAL$) -1 ) , cmoOverwrite
  283.     
  284.  
  285.     IF CONVTLX$ = "ON" THEN
  286.         i% = ConvertTlxBase( OLDPATH$, DEST$, hWnd%)
  287.         IF i% = -1 THEN
  288.             i% = DoMsgBox("Za ma│o pamiΩci do przeprowadzenia konwersji wiadomo£ci teleksowych.", "B│╣d konwersji", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  289.         ELSEIF i% = 0 THEN
  290.             i% = DoMsgBox("W katalogu "+OLDPATH$+" nie ma wiadomo£ci teleksowych o starym formacie.", "B│╣d konwersji", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  291.         END IF
  292.     END IF
  293.     IF CONVSUB$ = "ON" THEN
  294.         i% = ConvertSubscrBase( OLDPATH$, DEST$, hWnd%)
  295.     END IF
  296.  
  297.     i% = InstallShareExe( hWnd% )
  298.     
  299.     CreateProgmanGroup "Pro-Tlx", "", cmoNone
  300.     ShowProgmanGroup  "Pro-Tlx", 1, cmoNone
  301.     CreateProgmanItem "Pro-Tlx", "PRO-TLX", MakePath(DEST$,"protlx.exe /t"), "", cmoOverwrite
  302.     CreateProgmanItem "Pro-Tlx", "PRO-TLX backup", MakePath(DEST$,"backup.exe"), "", cmoOverwrite
  303.  
  304. ''    CloseLogFile
  305.  
  306. END SUB
  307.  
  308.  
  309.  
  310. '**
  311. '** Purpose:
  312. '**     Appends a file name to the end of a directory path,
  313. '**     inserting a backslash character as needed.
  314. '** Arguments:
  315. '**     szDir$  - full directory path (with optional ending "\")
  316. '**     szFile$ - filename to append to directory
  317. '** Returns:
  318. '**     Resulting fully qualified path name.
  319. '*************************************************************************
  320. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  321.     IF szDir$ = "" THEN
  322.         MakePath = szFile$
  323.     ELSEIF szFile$ = "" THEN
  324.         MakePath = szDir$
  325.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  326.         MakePath = szDir$ + szFile$
  327.     ELSE
  328.         MakePath = szDir$ + "\" + szFile$
  329.     END IF
  330. END FUNCTION
  331.  
  332.