home *** CD-ROM | disk | FTP | other *** search
/ Power Rangers Print Kit / PRINTKIT.BIN / pc / prprint.ms_ / prprint.ms
Text File  |  1995-10-10  |  9KB  |  303 lines

  1. title$   = "The Mighty Morphin Power Rangers Print Kit Setup Program"
  2. ini$     = "SABAN.INI"          ''Ezt a file-t a Windows directory-ba csinalja
  3. section$ = "power_ranger_print_kit"                ''Az ini$ beli szekcio neve
  4. cd_dir$  = "\RESOURCE"    ''A CD_DIR valtozo kezdoerteke lesz az ini$ file-ban
  5. SABAN$   = "C:\SABAN"      ''Ezt ajanlja fel jobb hijjan celutvonalnak + appl$
  6. group$   = "Saban Software"             ''Ez lesz a Program Manager Group neve
  7. item$    = "Power Rangers Print Kit"            ''Program Manager Icon alairas
  8. appl$    = "PRPRINT"                              ''.INF, .ICO, .EXE file neve
  9. develop$ = "EXE\"        ''Relativ utvonal a setup szulejetol az .exe file-hoz
  10. final$   = "EXE\"               ''Relativ utvonal a setup-tol az .exe file-hoz
  11. CUIDLL$  = "PRPRINT.DLL"
  12. DECLARE SUB DeleteDir LIB "PRPRINT.DLL" (Path$)
  13. DECLARE FUNCTION GetFileVersion LIB "PRPRINT.DLL" (Path$) AS LONG
  14. DECLARE FUNCTION DeleteProgmanItem LIB "PRPRINT.DLL" (hwnd%,Group$,Item$) AS LONG
  15. DECLARE FUNCTION DeleteProgmanGroup LIB "PRPRINT.DLL" (hwnd%,Group$) AS LONG
  16. ''$DEFINE QTW                                       ''Install Quick Time Movie
  17.  
  18.  
  19.  
  20. '$INCLUDE 'setupapi.inc'
  21. '$INCLUDE 'msdetect.inc'
  22.  
  23. ''Dialog ID's
  24. CONST WELCOME       = 100
  25. CONST ASKQUIT       = 200
  26. CONST DESTPATH      = 300
  27. CONST EXITFAILURE   = 400
  28. CONST EXITQUIT      = 600
  29. CONST EXITSUCCESS   = 700
  30. CONST OPTIONS       = 800
  31. CONST NOQUICKTIME   = 810
  32. CONST OLDQUICKTIME  = 820
  33. CONST APPHELP       = 900
  34. CONST TOOBIG        = 6300
  35. CONST BADPATH       = 6400
  36.  
  37. CONST LOGOBITMAP = 1
  38.  
  39. GLOBAL EXTRACOSTS$
  40. GLOBAL APPNEEDS$
  41. GLOBAL cost&
  42. GLOBAL free&
  43. DECLARE FUNCTION CheckForSpace(Path$) AS INTEGER
  44. DECLARE FUNCTION GetWindowLong LIB "user" (hwnd%,offs%) AS LONG
  45. DECLARE FUNCTION SetWindowLong LIB "user" (hwnd%,offs%,value&) AS LONG
  46. DECLARE SUB GetWindowRect LIB "user" (hwnd%,rect AS POINTER TO INTEGER)
  47. DECLARE FUNCTION SetWindowPos LIB "user" (hwnd%,hafter%,x%,y%,w%,h%,f%) AS INTEGER
  48.  
  49. INIT:
  50.  
  51.     APPNEEDS$       = "AppNeeds"
  52.     EXTRACOSTS$     = "ExtraCosts"
  53.  
  54.     ini$ = GetWindowsDir + ini$
  55.     SetBitmap CUIDLL$, LOGOBITMAP
  56.     SetTitle title$
  57.     hwnd% = HwndFrame()
  58.     style& = GetWindowLong(hwnd%,-16)
  59.     DIM rect(4) AS INTEGER
  60.     GetWindowRect hwnd%, VARPTR(rect(0))
  61.     rect(2) = rect(2) - rect(0)
  62.     rect(3) = rect(3) - rect(1)
  63.     SRC$ = GetSymbolValue("STF_SRCDIR")
  64.     IF (LEN(SRC$) > 8) THEN
  65.         IF (MID$(SRC$,LEN(SRC$)-6,7) = "\SETUP\") THEN
  66.             SRC$ = MID$(SRC$,1,LEN(SRC$)-6) + develop$
  67.         ELSE
  68.             SRC$ = SRC$ + final$
  69.         END IF
  70.     ELSE
  71.         SRC$ = SRC$ + final$
  72.     END IF
  73.  
  74.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  75.     IF szInf$ = "" THEN
  76.         szInf$ = GetSymbolValue("STF_CWDDIR") + appl$ + ".INF"
  77.     END IF
  78.  
  79.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  80.     
  81.     sz$ = GetIniKeyString(ini$,group$,"PATH")
  82.     sectnum% = VAL(GetIniKeyString(ini$,group$,"SectionNumber"))
  83.     IF sz$ <> "" THEN
  84.         SABAN$ = sz$
  85.     ENDIF
  86.     sz$ = GetIniKeyString(ini$,section$,"HD_DIR")
  87.     IF sz$ = "" THEN
  88.         DEST$ = SABAN$ + "\" + appl$
  89.         sectnum% = sectnum% + 1
  90.     ELSE
  91.         DEST$ = sz$
  92.     ENDIF
  93.  
  94. WELCOME:
  95.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  96.     IF sz$ = "CONTINUE" THEN
  97.         UIPop 1
  98.     ELSE
  99.         IF sz$ = "BACK" THEN ''Uninstall
  100.             UIPop 1
  101.             GOTO UNINSTALL
  102.         ELSE
  103.             GOSUB ASKQUIT
  104.             GOTO WELCOME
  105.         END IF
  106.     END IF
  107.  
  108. '$IFDEF QTW
  109.     qtim$ = GetWindowsSysDir + "QTIM.DLL"
  110.     IF DoesFileExist(qtim$,femExists) THEN
  111.         IF GetFileVersion(qtim$) < &H2000333 THEN
  112.             qtver% = OLDQUICKTIME
  113.         ELSE
  114.             qtver% = 0
  115.         END IF
  116.     ELSE
  117.         qtver% = NOQUICKTIME
  118.     END IF
  119.  
  120.     IF qtver% THEN
  121. QUICKTIME:
  122.         sz$ = UIStartDlg(CUIDLL$, qtver%, "FInfoDlgProc", 0, "")
  123.         IF sz$ = "REACTIVATE" THEN
  124.             GOTO QUICKTIME
  125.         END IF
  126.         UIPop 1
  127.         IF sz$ = "CONTINUE" THEN
  128.             UIPop 1
  129.             RUN SRC$ + "qtinstal.exe"
  130.         END IF
  131.     END IF
  132. '$ENDIF
  133.  
  134.     ClearCopyList
  135.     ReadInfFile szInf$
  136.  
  137. GETPATH:
  138.     SetSymbolValue "EditTextIn", DEST$
  139. GETPATHL1:
  140.     SetSymbolValue "EditFocus", "END"
  141.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  142.     DEST$ = UCASE$(GetSymbolValue("EditTextOut"))
  143.  
  144.     IF sz$ = "CONTINUE" THEN
  145.         IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN
  146.             DEST$ = MID$(DEST$, 1, LEN(DEST$)-1)
  147.         END IF
  148.  
  149.         IF LEN(DEST$) = 0 THEN
  150.             DEST$ = "."
  151.         END IF
  152.         IF IsDirWritable(DEST$) = 0 THEN
  153.             GOSUB BADPATH
  154.             GOTO GETPATHL1
  155.         END IF
  156.     ELSEIF sz$ = "REACTIVATE" THEN
  157.         GOTO GETPATHL1
  158.     ELSEIF sz$ = "BACK" THEN
  159.         UIPop 1
  160.         GOTO WELCOME
  161.     ELSE
  162.         GOSUB ASKQUIT
  163.         GOTO GETPATH
  164.     END IF
  165.  
  166.     AddSectionFilesToCopyList "Files", SRC$, DEST$
  167.  
  168.     IF CheckForSpace(DEST$) = 1 THEN
  169.        GOSUB TOOBIG
  170.        ClearCopyList
  171.        GOTO GETPATHL1
  172.     END IF
  173.     UIPop 1
  174.  
  175.     CreateDir DEST$, cmoVital
  176.  
  177.     OpenLogFile DEST$ + "\SETUP.LOG", 1
  178.  
  179.     CopyFilesInCopyList
  180.  
  181.     IF GetIniKeyString(ini$,group$,"PATH") = "" THEN
  182.         IF INSTR(DEST$,MID$(SABAN$,2)) = 2 THEN
  183.             SABAN$ = MID$(DEST$,1,1) + MID$(SABAN$,2)
  184.             CreateIniKeyValue ini$, group$, "PATH", SABAN$, cmoAll
  185.         END IF
  186.     END IF
  187.     CreateIniKeyValue ini$, group$, "SectionNumber", STR$(sectnum%), cmoAll
  188.     IF GetIniKeyString(ini$,section$,"CD_DIR") <> cd_dir$ THEN
  189.         CreateIniKeyValue ini$, section$, "CD_DIR",   cd_dir$ , cmoAll
  190.     END IF
  191.     IF GetIniKeyString(ini$,section$,"HD_DIR") <> DEST$ THEN
  192.         CreateIniKeyValue ini$, section$, "HD_DIR",   DEST$   , cmoAll
  193.     END IF
  194.     IF GetIniKeyString(ini$,section$,"USER_DIR") = "" THEN
  195.         CreateIniKeyValue ini$, section$, "USER_DIR", DEST$   , cmoAll
  196.     END IF
  197.     CreateProgmanGroup group$, "", cmoVital
  198.     ShowProgmanGroup group$, 1, cmoNone
  199.     i% = DeleteProgmanItem(hwnd%,group$,item$)
  200.     ShowProgmanGroup group$, 1, cmoNone
  201.     CreateProgmanItem group$,item$,SRC$+appl$+".EXE",DEST$+"\"+appl$+".ICO",cmoOverwrite
  202.  
  203.     CloseLogFile
  204.  
  205. QUIT:
  206.     ON ERROR GOTO ERRQUIT
  207.  
  208.     IF ERR = 0 THEN
  209.         dlg% = EXITSUCCESS
  210.     ELSEIF ERR = STFQUIT THEN
  211.         dlg% = EXITQUIT
  212.     ELSE
  213.         dlg% = EXITFAILURE
  214.     END IF
  215. QUITL1:
  216.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  217.     IF sz$ = "REACTIVATE" THEN
  218.         GOTO QUITL1
  219.     END IF
  220.     UIPop 1
  221.  
  222.     END
  223.  
  224. UNINSTALL:
  225.     sz$ = GetIniKeyString(ini$,section$,"HD_DIR")
  226.     IF sz$ = "" THEN
  227.         i% = DoMsgBox("The installed game not found.", "Uninstall Application", MB_OK+MB_TASKMODAL+64)
  228.         GOTO WELCOME
  229.     END IF
  230.     i% = DoMsgBox("The following subdirectory will be deleted:"+CHR$(13)+"       "+DEST$+CHR$(13)+"Are you sure?", "Uninstall Application", 1+MB_TASKMODAL+32)
  231.     IF i% <> 1 THEN
  232.         GOTO WELCOME
  233.     END IF
  234.  
  235.     ClearCopyList
  236.     ReadInfFile szInf$
  237.     AddSectionFilesToCopyList "Uninstall", SRC$, DEST$
  238.     CopyFilesInCopyList
  239.     DeleteDir(DEST$)
  240.     RemoveIniSection ini$,section$,cmoNone
  241.     i% = DeleteProgmanItem(hwnd%,group$,item$)
  242.     sectnum% = sectnum% - 1
  243.     IF sectnum% > 0 THEN
  244.         CreateIniKeyValue ini$,group$,"SectionNumber",STR$(sectnum%),cmoAll
  245.     ELSE
  246.         sz$ = GetIniKeyString(ini$,group$,"PATH")
  247.         i% = DeleteProgmanGroup(hwnd%,group$)
  248.         IF sz$ <> "" THEN
  249.             DeleteDir(sz$)
  250.         END IF
  251.         RemoveFile ini$,cmoNone
  252.     END IF
  253.     END
  254.  
  255.  
  256.  
  257. ERRQUIT:
  258.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  259.     END
  260.  
  261. BADPATH:
  262.     i% = DoMsgBox("The path entered is not valid.", "Setup Message", MB_OK+MB_TASKMODAL+64)
  263.     RETURN
  264.  
  265. ASKQUIT:
  266.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  267.  
  268.     IF sz$ = "EXIT" THEN
  269.         UIPopAll
  270.         ERROR STFQUIT
  271.     ELSEIF sz$ = "REACTIVATE" THEN
  272.         GOTO ASKQUIT
  273.     ELSE
  274.         UIPop 1
  275.     END IF
  276.     RETURN
  277.  
  278. TOOBIG:
  279.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  280.     IF sz$ = "REACTIVATE" THEN
  281.        GOTO TOOBIG
  282.     END IF
  283.     i% = DoMsgBox("Still need "+STR$(cost&-free&)+" bytes free space.", "Setup Info", MB_OK+MB_TASKMODAL+64)
  284.     UIPop 1
  285.     RETURN
  286.  
  287.  
  288. FUNCTION CheckForSpace(Path$) STATIC AS INTEGER
  289.     ListSym$ = APPNEEDS$
  290.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  291.     drive$ = MID$(Path$, 1, 1)
  292.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  293.     cost& = VAL(GetListItem(APPNEEDS$, ndrive%))
  294.     free& = GetFreeSpaceForDrive(drive$)
  295.     CheckForSpace = 0
  296.     IF cost& >= free& THEN
  297.         CheckForSpace = 1
  298.     END IF
  299. END FUNCTION
  300.  
  301.  
  302.  
  303.