home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 October / Chip_1997-10_cd.bin / zkuste / milion / cisla.ms_ / cisla.ms
Text File  |  1997-09-01  |  6KB  |  224 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST OPTIONS       = 800
  16. CONST APPHELP       = 900
  17. CONST BADPATH       = 6400
  18.  
  19. CONST SW_SHOWMAXIMIZED=3
  20.  
  21. CONST LOGO = 1
  22.  
  23. GLOBAL DEST$        ''Default destination directory.
  24. GLOBAL OPTCUR$      ''Option selection from option dialog.
  25. GLOBAL WINDOWS$     ''Windows directory
  26. GLOBAL SourceCD$    ''Source CD drive
  27.  
  28. DECLARE SUB Install
  29. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  30. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER''Bitmap ID
  31.  
  32.  
  33. INIT:
  34.     hWnd%=HwndFrame()
  35.     junk%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  36.  
  37.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  38.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  39.  
  40.     SetBitmap CUIDLL$, LOGO
  41.     SetTitle "Instalace demoverze programu ╚φsla za mili≤n"
  42.  
  43.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  44.     IF szInf$ = "" THEN
  45.         szInf$ = GetSymbolValue("STF_CWDDIR") + "CISLA.INF"
  46.     END IF
  47.     ReadInfFile szInf$
  48.  
  49.     OPTCUR$ = "1"
  50.     DEST$ = "C:\CISLA_DM"
  51.     WINDOWS$ = GetWindowsDir
  52.  
  53.     dummy$ = GetSymbolValue("STF_SRCDIR")
  54.     SourceCD$ = MID$(dummy$, 1, 1)
  55.  
  56. '' '$IFDEF DEBUG
  57. ''    i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  58. ''    WinDrive$ = MID$(GetWindowsDir, 1, 1)
  59. ''    IF IsDriveValid(WinDrive$) = 0 THEN
  60. ''        i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  61. ''        GOTO QUIT
  62. ''    END IF
  63. '' '$ENDIF ''DEBUG
  64.  
  65.  
  66. WELCOME:
  67.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  68.     IF sz$ = "CONTINUE" THEN
  69.         UIPop 1
  70.     ELSE
  71.         GOSUB ASKQUIT
  72.         GOTO WELCOME
  73.     END IF
  74.  
  75.  
  76. GETPATH:
  77.     SetSymbolValue "EditTextIn", DEST$
  78.     SetSymbolValue "EditFocus", "END"
  79. GETPATHL1:
  80.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  81.     DEST$ = GetSymbolValue("EditTextOut")
  82.  
  83.     IF sz$ = "CONTINUE" THEN
  84.         IF IsDirWritable(DEST$) = 0 THEN
  85.             GOSUB BADPATH
  86.             GOTO GETPATHL1
  87.         END IF
  88.         UIPop 1
  89.     ELSEIF sz$ = "REACTIVATE" THEN
  90.         GOTO GETPATHL1
  91.     ELSEIF sz$ = "BACK" THEN
  92.         UIPop 1
  93.         GOTO WELCOME
  94.     ELSE
  95.         GOSUB ASKQUIT
  96.         GOTO GETPATH
  97.     END IF
  98.  
  99.  
  100.     Install
  101.  
  102.  
  103. QUIT:
  104.     ON ERROR GOTO ERRQUIT
  105.  
  106.     IF ERR = 0 THEN
  107.         dlg% = EXITSUCCESS
  108.     ELSEIF ERR = STFQUIT THEN
  109.         dlg% = EXITQUIT
  110.     ELSE
  111.         dlg% = EXITFAILURE
  112.     END IF
  113. QUITL1:
  114.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  115.     IF sz$ = "REACTIVATE" THEN
  116.         GOTO QUITL1
  117.     END IF
  118.     UIPop 1
  119.  
  120.     END
  121.  
  122. ERRQUIT:
  123.     i% = DoMsgBox("Zdroje instalaΦnφho programu jsou poΦkozeny. Kontaktujte v²robce!", "Zprßva", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  124.     END
  125.  
  126.  
  127.  
  128. BADPATH:
  129.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  130.     IF sz$ = "REACTIVATE" THEN
  131.         GOTO BADPATH
  132.     END IF
  133.     UIPop 1
  134.     RETURN
  135.  
  136.  
  137.  
  138. ASKQUIT:
  139.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  140.  
  141.     IF sz$ = "EXIT" THEN
  142.         UIPopAll
  143.         ERROR STFQUIT
  144.     ELSEIF sz$ = "REACTIVATE" THEN
  145.         GOTO ASKQUIT
  146.     ELSE
  147.         UIPop 1
  148.     END IF
  149.     RETURN
  150.  
  151.  
  152.  
  153. '**
  154. '** Purpose:
  155. '**     Builds the copy list and performs all installation operations.
  156. '** Arguments:
  157. '**     none.
  158. '** Returns:
  159. '**     none.
  160. '*************************************************************************
  161. SUB Install STATIC
  162.  
  163.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  164.     CreateDir DEST$, cmoNone
  165.  
  166. ''    OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  167. ''    WriteToLogFile ""
  168.   ''  WriteToLogFile "May have had to create the directory: " + DEST$
  169.     ''WriteToLogFile ""
  170.  
  171.     AddSectionFilesToCopyList "DEMO", SrcDir$, DEST$
  172. ''    AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  173.     CopyFilesInCopyList
  174.  
  175.     ini$ = MakePath(WINDOWS$, "CISLA_DM.INI")
  176.  
  177.     RemoveIniKey ini$, "DATA", "TempDir", cmoNone
  178.     RemoveIniKey ini$, "DATA", "DataDir", cmoNone
  179.     RemoveIniKey ini$, "DATA", "UndoSize", cmoNone
  180.     CreateIniKeyValue ini$, "DATA", "TempDir", DEST$ , cmoNone
  181.     CreateIniKeyValue ini$, "DATA", "DataDir", DEST$ , cmoNone
  182.     CreateIniKeyValue ini$, "DATA", "UndoSize", "3" , cmoNone
  183.  
  184.     RemoveIniKey ini$, "TISK", "Korekce X", cmoNone
  185.     RemoveIniKey ini$, "TISK", "Korekce Y", cmoNone
  186.     CreateIniKeyValue ini$, "TISK", "Korekce X", "0" , cmoNone
  187.     CreateIniKeyValue ini$, "TISK", "Korekce Y", "0" , cmoNone
  188.  
  189.     CreateProgmanGroup "╚φsla za mili≤n - DEMOVERZE", "", cmoNone
  190.     ShowProgmanGroup  "╚φsla za mili≤n - DEMOVERZE", 1, cmoNone
  191.     CreateProgmanItem "╚φsla za mili≤n - DEMOVERZE", "╚φsla za mili≤n 2.0 - DEMOVERZE", MakePath(DEST$,"cisla_dm.exe"), "", cmoOverwrite
  192.     CreateProgmanItem "╚φsla za mili≤n - DEMOVERZE", "Nßpov∞da pro ╚φsla za mili≤n 2.0", MakePath(DEST$,"cisla_dm.hlp"), "", cmoOverwrite
  193.     CreateProgmanItem "╚φsla za mili≤n - DEMOVERZE", "Nßpov∞da pro ╚φsla za mili≤n 1.2", MakePath(DEST$,"cisla_12.hlp"), "", cmoOverwrite
  194.     CreateProgmanItem "╚φsla za mili≤n - DEMOVERZE", "Informace o demoverzi programu", MakePath(DEST$,"cisla.wri"), "", cmoOverwrite
  195.  
  196. ''    CloseLogFile
  197.  
  198. END SUB
  199.  
  200.  
  201.  
  202. '**
  203. '** Purpose:
  204. '**     Appends a file name to the end of a directory path,
  205. '**     inserting a backslash character as needed.
  206. '** Arguments:
  207. '**     szDir$  - full directory path (with optional ending "\")
  208. '**     szFile$ - filename to append to directory
  209. '** Returns:
  210. '**     Resulting fully qualified path name.
  211. '*************************************************************************
  212. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  213.     IF szDir$ = "" THEN
  214.         MakePath = szFile$
  215.     ELSEIF szFile$ = "" THEN
  216.         MakePath = szDir$
  217.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  218.         MakePath = szDir$ + szFile$
  219.     ELSE
  220.         MakePath = szDir$ + "\" + szFile$
  221.     END IF
  222. END FUNCTION
  223.  
  224.