home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / best_66 / psu1 / setup.ms_ < prev    next >
Encoding:
Text File  |  1994-06-30  |  7.6 KB  |  232 lines

  1. '**************************************************************************
  2. '*                                 MSSetup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'msregdb.inc'
  10. '$INCLUDE 'msshared.inc'
  11.  
  12. ''definitionen
  13. Declare Function GetModuleHandle Lib "Kernel" (ModuleName As String) As Integer
  14. Declare Function Ctl3dAutoSubclass Lib "Ctl3D.DLL" (hInst As Integer) As Integer
  15. Declare Function Ctl3dRegister Lib "Ctl3D.DLL" (hInst As Integer) As Integer
  16. Declare Function Ctl3dUnregister Lib "Ctl3D.DLL" (hInst As Integer) As Integer
  17.  
  18. ''Dialog ID's
  19. CONST WELCOME       = 100
  20. CONST ASKQUIT       = 200
  21. CONST DESTPATH      = 300
  22. CONST EXITFAILURE   = 400
  23. CONST EXITQUIT      = 600
  24. CONST EXITSUCCESS   = 700
  25. CONST BADPATH       = 6400
  26.  
  27. ''Bitmap ID
  28. CONST LOGO = 1
  29.  
  30. GLOBAL DEST$        ''Default destination directory.
  31. GLOBAL OPTCUR$      ''Option selection from option dialog.
  32.  
  33. DECLARE SUB Install
  34.  
  35. INIT:
  36.     Inst% = GetModuleHandle("setup.exe")
  37.     ret = Ctl3dRegister(Inst%)
  38.     ret = Ctl3dAutoSubclass(Inst%)
  39.  
  40.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  41.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  42.  
  43.     SetBitmap CUIDLL$, LOGO
  44.     SetTitle "--- Setup ---"
  45.     SetAbout "Peter's Spiele und Utility", "Copyright by Peter H÷hn, Berlin ⌐1993"
  46.     SetCopyGaugePosition 130,110
  47.  
  48.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  49.     IF szInf$ = "" THEN
  50.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  51.     END IF
  52.     ReadInfFile szInf$
  53.  
  54.     OPTCUR$ = "1"
  55.     DEST$ = "C:\PHOEHN"
  56.  
  57. '$IFDEF DEBUG
  58.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  59.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  60.     IF IsDriveValid(WinDrive$) = 0 THEN
  61.         i% = DoMsgBox("Windows Laufwerk ('"+WinDrive$+"') ist nicht korrekt.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  62.         GOTO QUIT
  63.     END IF
  64. '$ENDIF ''DEBUG
  65.  
  66.  
  67. WELCOME:
  68.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  69.     UIPop 1
  70.  
  71. GETPATH:
  72.     SetSymbolValue "EditTextIn", DEST$
  73.     SetSymbolValue "EditFocus", "END"
  74. GETPATHL1:
  75.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  76.     DEST$ = GetSymbolValue("EditTextOut")
  77.  
  78.     IF sz$ = "CONTINUE" THEN
  79.         IF IsDirWritable(DEST$) = 0 THEN
  80.             GOSUB BADPATH
  81.             GOTO GETPATHL1
  82.         END IF
  83.         UIPop 1
  84.     ELSEIF sz$ = "REACTIVATE" THEN
  85.         GOTO GETPATHL1
  86.     ELSE
  87.         GOSUB ASKQUIT
  88.         GOTO GETPATH
  89.     END IF
  90.  
  91.  
  92.     Install
  93.  
  94.  
  95. QUIT:
  96.     ON ERROR GOTO ERRQUIT
  97.  
  98.     IF ERR = STFQUIT THEN
  99.         END
  100.     END IF
  101.  
  102.     IF ERR = 0 THEN
  103.         dlg% = EXITSUCCESS
  104.     ELSEIF ERR = STFQUIT THEN
  105.         dlg% = EXITQUIT
  106.     ELSE
  107.         dlg% = EXITFAILURE
  108.     END IF
  109. QUITL1:
  110.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  111.     IF sz$ = "REACTIVATE" THEN
  112.         GOTO QUITL1
  113.     END IF
  114.     UIPop 1
  115.  
  116.     Inst% = GetModuleHandle("test.exe")
  117.     ret = Ctl3dUnregister(Inst%)
  118.     END
  119.  
  120. ERRQUIT:
  121.     i% = DoMsgBox("Das Setupfile ist defekt, das Programm wird beendet.", "Setup-Fehlermeldung", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  122.     Inst% = GetModuleHandle("test.exe")
  123.     ret = Ctl3dUnregister(Inst%)
  124.     END
  125.  
  126.  
  127. BADPATH:
  128.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  129.     IF sz$ = "REACTIVATE" THEN
  130.         GOTO BADPATH
  131.     END IF
  132.     UIPop 1
  133.     RETURN
  134.  
  135.  
  136. ASKQUIT:
  137.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  138.  
  139.     IF sz$ = "EXIT" THEN
  140.         UIPopAll
  141.         ERROR STFQUIT
  142.     ELSEIF sz$ = "REACTIVATE" THEN
  143.         GOTO ASKQUIT
  144.     ELSE
  145.         UIPop 1
  146.     END IF
  147.     RETURN
  148.  
  149.  
  150. '**
  151. '** Purpose:
  152. '**     Builds the copy list and performs all installation operations.
  153. '** Arguments:
  154. '**     none.
  155. '** Returns:
  156. '**     none.
  157. '*************************************************************************
  158. SUB Install STATIC
  159.  
  160.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  161.     CreateDir DEST$, cmoNone
  162.  
  163.     OpenLogFile DEST$ + "\LOGFILE.OUT", 0
  164.     WriteToLogFile " "
  165.     WriteToLogFile "Diese Programme sind Public Domain"
  166.     WriteToLogFile "und dⁿrfen nur KOSTENLOS weiter gegeben"
  167.     WriteToLogFile "werden."
  168.     WriteToLogFile " "
  169.     WriteToLogFile "Public Domain, hei▀t das es wirklich fⁿr"
  170.     WriteToLogFile "jeden FREI VERF▄GBAR sein sollte und niemand"
  171.     WriteToLogFile "sich auf KOSTEN der Public Domain Autoren"
  172.     WriteToLogFile "eine GOLDENE NASE verdient."
  173.     WriteToLogFile " "
  174.     WriteToLogFile "Ich hoffe das andere Autoren auch so Denken"
  175.     WriteToLogFile "und mir zustimmen."
  176.     WriteToLogFile " "
  177.     WriteToLogFile "Peter H÷hn"
  178.     WriteToLogFile "Alte Jakobstra▀e 169"
  179.     WriteToLogFile "10969 Berlin"
  180.     WriteToLogFile " "
  181.     WriteToLogFile "Tel.: 030 / 614 26 75"
  182.     WriteToLogFile " "
  183.  
  184.     Win$    = GetWindowsDir()
  185.     WinSys$ = GetWindowsSysDir()
  186.     P1$     = "PH-Spiele"
  187.     P2$     = "PH-Utilitys"
  188.     Sp$     = DEST$ + "\Spiele"
  189.     Pt$     = DEST$ + "\Spiele\Punkte"
  190.     Wa$     = DEST$ + "\Spiele\Wav"
  191.     Ww$     = DEST$ + "\Spiele\Winwahn"
  192.     Ut$     = DEST$ + "\Utilitys"
  193.     AddSectionFilesToCopyList "Dlls", SrcDir$, WinSys$
  194.     AddSectionFilesToCopyList "Ini", SrcDir$, Win$
  195.     AddSectionFilesToCopyList "Spiele", SrcDir$, Sp$
  196. ' AddSectionFilesToCopyList "Punkte", SrcDir$, Pt$
  197.     AddSectionFilesToCopyList "Wav", SrcDir$, Wa$
  198.     AddSectionFilesToCopyList "Winwahn", SrcDir$, Ww$
  199.     AddSectionFilesToCopyList "Utilitys", SrcDir$, Ut$
  200.     CopyFilesInCopyList
  201.  
  202.     WinIni$ = GetWindowsDir() + "PANGAMES.INI"
  203.     CreateIniKeyValue WinIni$, "Spiele", "Path", DEST$+"\Spiele" , cmoOverwrite
  204.  
  205.     CreateProgmanGroup P1$, DEST$+"\Spiele", cmoNone
  206.     ShowProgmanGroup   P1$, 1, cmoNone
  207.     CreateProgmanItem  P1$, "Hanoi",     Sp$ + "\Hanoi.exe",           Sp$ + "\Hanoi.exe, 1, 1, 1",           cmoOverwrite
  208.     CreateProgmanItem  P1$, "Kniffel",   Sp$ + "\kniffel.exe",         Sp$ + "\kniffel.exe, 0, 1, 1",         cmoOverwrite
  209.     CreateProgmanItem  P1$, "Memory",    Sp$ + "\Memory.exe",          Sp$ + "\Memory.exe, 113, 1, 1",        cmoOverwrite
  210.     CreateProgmanItem  P1$, "Win17 & 4", Sp$ + "\Win17.exe",           Sp$ + "\Win17.exe, 1, 1, 1",           cmoOverwrite
  211.     CreateProgmanItem  P1$, "WinWahn",   Sp$ + "\winwahn\Winwahn.exe", Sp$ + "\winwahn\winwahn.exe, 0, 1, 1", cmoOverwrite
  212.  
  213.     CreateProgmanGroup P2$, DEST$+"\Utilitys", cmoNone
  214.     ShowProgmanGroup   P2$, 1, cmoNone
  215.     CreateProgmanItem  P2$, "BerlinUhr",    Ut$ + "\BlnUhr.exe",   "", cmoOverwrite
  216.     CreateProgmanItem  P2$, "Cdplayer",     Ut$ + "\Cdplayer.exe", "", cmoOverwrite
  217.     CreateProgmanItem  P2$, "FileFinder",   Ut$ + "\ff.exe",       "", cmoOverwrite
  218.     CreateProgmanItem  P2$, "IconView",     Ut$ + "\IconView.exe", "", cmoOverwrite
  219.     CreateProgmanItem  P2$, "IniEdit",      Ut$ + "\IniEdit.exe",  "", cmoOverwrite
  220.     CreateProgmanItem  P2$, "LabelPrinter", Ut$ + "\Label.exe",    "", cmoOverwrite
  221.     CreateProgmanItem  P2$, "QuickStart",   Ut$ + "\Qstart.exe",   Ut$ + "\Qstart.exe, 2, 1, 1", cmoOverwrite
  222.     CreateProgmanItem  P2$, "ScanDisk",     Ut$ + "\Scandisk.exe", "", cmoOverwrite
  223.     CreateProgmanItem  P2$, "SHowBitmap",   Ut$ + "\ShowBmp.exe",  "", cmoOverwrite
  224.     CreateProgmanItem  P2$, "Trash",        Ut$ + "\Trash.exe",    "", cmoOverwrite
  225.     CreateProgmanItem  P2$, "WinInfo",      Ut$ + "\WinInfo.exe",  "", cmoOverwrite
  226.     CreateProgmanItem  P2$, "WinTimer",     Ut$ + "\W_timer.exe",  "", cmoOverwrite
  227.     CreateProgmanItem  P2$, "WinExit",      Ut$ + "\Winexit.exe",  "", cmoOverwrite
  228.  
  229.     CloseLogFile
  230.  
  231. END SUB
  232.