home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 July / Chip_1997-07_cd.bin / sharewar / 95rar / tools / script20.exe / rar / KOMFORT.S < prev    next >
Text File  |  1996-05-06  |  13KB  |  580 lines

  1. ;
  2. ; Installations-SFX-Modul
  3. ; Erstellt von Bernd Hohenester
  4. ;
  5. ;     FIDO: Bernd Hohenester@2:2490/2030.4
  6. ;      CIS: 101447,1272
  7. ; INTERNET: 101447.1272@compuserve.com
  8. ;
  9. ;
  10. ; Im Script sind folgende Funktionen enthalten:
  11. ;
  12. ; - Anzeige des Zielverzeichnisses, des benötigten und des verfügbaren
  13. ;   Speicherplatzes auf dem Ziellaufwerk
  14. ; - Warnung bei ungenügendem Speicherplatz auf dem Ziellaufwerk
  15. ; - Warnung bei nicht vorhandenem Ziellaufwerk
  16. ; - automatische Menüweiterschaltung
  17. ; - Anwender kann Zielverzeichnis ändern
  18. ; - während des Entpackens Anzeige durch Fortschritts-Balken und einzelne
  19. ;   Dateinamen
  20. ; - Hilfeseite
  21. ; - es werden nur nicht vorhandene oder aktuellere Dateien entpackt
  22. ; - Aufforderung zum Diskettenwechsel bei Mehrdisketten-Archiven
  23. ; - Fehlererkennung
  24. ; - nach der Installation wird in das Zielverzeichnis gewechselt
  25. ;
  26. ;
  27. ; iSFX-Skript wird ab RAR V 1.54 nicht als Archivkommentar angezeigt!
  28.  
  29. ; Variable für Zielverzeichnis. BITTE GEWÜNSCHTEN PFAD EINTRAGEN!
  30. ; Wird innerhalb des Scripts mehrfach verwendet!
  31. Ziel="C:\\INSTALL"
  32. DestDir=Ziel
  33.  
  34. ; Anzahl der Dateien im Archiv. BITTE KORREKTEN WERT EINTRAGEN!
  35. files=1
  36.  
  37. ; Zum Entpacken benötigter Plattenspeicher in BYTES. BITTE WERT EINTRAGEN!
  38. diskneed=1024
  39.  
  40. ; Balken definieren
  41. defbar YELLOW,CYAN,BLUE,WHITE,14,7,52
  42. ; Standard-Ansikommentar ausgeben ──────────────────────────────────────
  43. clrscr
  44. outtext ansi on
  45. outtext ansi off
  46.  
  47. ; Hintergrundfarben setzen und Bildschirm löschen
  48. setcolor CYAN,CYAN
  49. window 1,1,80,25
  50. clrscr
  51.  
  52. ; AV-Überprüfung
  53. if AVPresent == -1
  54.   Title="Warnung"
  55.   Message="Siegelinformation ist nicht korrekt"
  56.   call ErrMsg
  57. endif
  58.  
  59. if AVPresent == 0
  60.   Title="Warnung"
  61.   Message="Siegelinformation fehlt"
  62.   call ErrMsg
  63. endif
  64.  
  65. ; Hintergrundfarben setzen und Bildschirm löschen
  66. setcolor CYAN,CYAN
  67. window 1,1,80,25
  68. clrscr
  69.  
  70. ; Programm Info
  71. clrscr
  72. outtext ansi on
  73.  ┌──────────────────────────────────────────────────────────────────────────
  74.  │ Installations-SFX-Modul                     Hier können Sie eine kurze   
  75.  │ Erstellt von Bernd Hohenester               Programm-Info eintragen,     
  76.  │     FIDO: Bernd Hohenester@2:2490/2030.4    Ihr Copyright usw.           
  77.  │      CIS: 101447,1272                                                    
  78.  │ INTERNET: 101447.1272@compuserve.com                                     
  79.  ├──────────────────────────────────────────────────────────────────────────
  80.  │              Zielverzeichnis:                                            
  81.  │ erforderlicher Speicherplatz:                                            
  82.  │    verfügbarer Speicherplatz:                                            
  83.  ──────────────────────────────────────────────────────────────────────────┘
  84. outtext ansi off
  85.  
  86. ; Schatten unten
  87. setcolor DARKGRAY,CYAN
  88. window 4,13,79,13
  89. clrscr 219
  90.  
  91. ; Schatten rechts
  92. setcolor DARKGRAY,CYAN
  93. window 78,3,79,13
  94. clrscr 219
  95.  
  96. ; Zielverzeichnis anzeigen
  97. window 34,9,76,11
  98. setcolor BLACK,WHITE
  99. gotoxy 1,1
  100. text DestDir
  101.  
  102. ; erforderlicher Speicherplatz
  103. gotoxy 1,2
  104. KDiskNeed=diskneed/1024
  105. text KDiskNeed," KB"
  106.  
  107. ; verfügbarer Speicherplatz
  108. DiskSpace=getdfree
  109. KDiskSpace=DiskSpace/1024
  110. setcolor LIGHTGREEN,WHITE
  111. gotoxy 1,3
  112. text KDiskSpace," KB"
  113.  
  114. Bar=2
  115.  
  116. ; ungenügender Speicherplatz
  117. if DiskSpace < diskneed
  118.   setcolor RED,WHITE
  119.   gotoxy 1,3
  120.   text "                                          "
  121.   gotoxy 1,3
  122.   text KDiskSpace, " KB", " ungenügender Speicherplatz!"
  123.   Bar=1
  124. endif
  125.  
  126. ; Laufwerk nicht vorhanden
  127. if DiskSpace == -1
  128.   setcolor RED,WHITE
  129.   gotoxy 1,3
  130.   text "                                          "
  131.   gotoxy 1,3
  132.   text "Laufwerk ", DestDir, " nicht vorhanden!"
  133.   Bar=1
  134. endif
  135.  
  136. window 1,1,80,25
  137. ; unterste Zeile
  138. setcolor WHITE,CYAN
  139. gotoxy 1,25
  140. text "                        F1 für Hilfe, ALT-X zum Beenden                        "
  141.  
  142. ; Sound-Effekt
  143. sound 90,1
  144.  
  145. ; Installations-Menü
  146. Menu:
  147.  
  148. Choice = menu 27,16,YELLOW,BLUE,Bar,"Installations-Menü","Zielverzeichnis ändern"," Installation starten","         Ende"
  149.  
  150. if Choice == 0
  151.   goto Menu
  152. endif
  153.  
  154. ; Zielverzeichnis setzen
  155. if Choice == 1
  156.   savescr 1
  157.   window 34,9,76,9
  158.   Res=INPUT BLACK,CYAN,DestDir,DestDir,43
  159.   restscr 1
  160.   Bar=2
  161.  
  162.   ; bei Abbruch alte Vorgabe
  163.   if Res == 0
  164.     DestDir=Ziel
  165.     Bar=1
  166.   endif
  167.  
  168.   ; neu anzeigen
  169.   window 34,9,76,11
  170.   setcolor BLACK,WHITE
  171.   clrscr
  172.   gotoxy 1,1
  173.   text DestDir
  174.  
  175.   gotoxy 1,2
  176.   text KDiskNeed, " KB"
  177.  
  178.   ; verfügbarer Speicherplatz
  179.   setcolor LIGHTGREEN,WHITE
  180.   gotoxy 1,3
  181.   DiskSpace=getdfree
  182.   KDiskSpace=DiskSpace/1024
  183.   text KDiskSpace, " KB"
  184.  
  185.   ; ungenügender Speicherplatz
  186.   if DiskSpace < diskneed
  187.     setcolor RED,WHITE
  188.     gotoxy 1,3
  189.     text "                                          "
  190.     gotoxy 1,3
  191.     text KDiskSpace, " KB", " ungenügender Speicherplatz!"
  192.     Bar=1
  193.   endif
  194.  
  195.   ; Laufwerk nicht vorhanden
  196.   if DiskSpace == -1
  197.     setcolor RED,WHITE
  198.     gotoxy 1,3
  199.     text "                                          "
  200.     gotoxy 1,3
  201.     text "Laufwerk ", DestDir, " nicht vorhanden!"
  202.     Bar=1
  203.   endif
  204.  
  205.   window 1,1,80,25
  206.   goto Menu
  207. endif
  208.  
  209. if Choice == 2
  210.   box 6,11,75,24,LIGHTCYAN,BLUE,DOUBLE
  211.   setcolor LIGHTCYAN,BLUE
  212.  
  213.   ; Titel
  214.   gotoxy 27,11
  215.   text " Installations-Status: "
  216.   window 7,12,74,23
  217.   clrscr
  218.  
  219.   ; freien Speicherplatz prüfen
  220.   DiskSpace=getdfree
  221.   KDiskSpace=DiskSpace/1024
  222.   KDiskNeed=diskneed/1024
  223.   text "Installation begonnen.\n"
  224.   text "erforderlicher Speicherplatz: ",KDiskNeed," KB\n"
  225.   text "verfügbarer Speicherplatz:    ",KDiskSpace," KB\n"
  226.   inswrow=4
  227.   window 1,1,80,25
  228.  
  229.   if DiskSpace < diskneed
  230.     savescr 1
  231.     window 1,1,80,25
  232.     sound 2300,25
  233.     delay 100
  234.     sound 1450,25
  235.     delay 100
  236.     sound 2300,100
  237.     Choice = menu 26,16,WHITE,RED,1,"ungenügender Speicherplatz","        Fortsetzen        ","        Abbrechen         "
  238.  
  239.     ; Abbruch mit ESC
  240.     if Choice == 0
  241.       goto Quit
  242.     endif
  243.  
  244.     ; "Abbrechen" gewählt
  245.     if Choice == 2
  246.       goto Quit
  247.     endif
  248.     restscr 1
  249.   endif
  250. endif
  251.  
  252. if Choice == 3
  253.   Quit:
  254.   setcolor WHITE,BLACK
  255.   clrscr
  256.   gotoxy 2,4
  257.   text "Das Programm wurde NICHT installiert!"
  258.   sound 380,25
  259.   delay 210
  260.   sound 190,25
  261.   exit 1
  262.   goto Menu
  263. endif
  264.  
  265. ; HIER BEGINNT DIE INSTALLATION
  266. ; nur nicht vorhandene oder neuere Dateien entpacken
  267. Overwrite UPDATE
  268.  
  269. proc OnKey
  270.   window 1,1,80,25
  271.  
  272.   if Par1 == 3
  273.     savescr 15
  274.     Par1=-1
  275.     sound 2300,25
  276.     delay 100
  277.     sound 1450,100
  278.     Choice=Menu 32,11,WHITE,LIGHTRED,1,"Unterbrechung"," Fortsetzen  ","  Abbrechen  "
  279.     if Choice == 2
  280.       exit 1
  281.     endif
  282.     restscr 15
  283.   endif
  284.  
  285.   ; "Abbrechen" gewählt
  286.   if Par1 == 301
  287.     goto Quit
  288.   endif
  289.  
  290.   ; F1 Hilfe angefordert
  291.   if Par1 == 315
  292.     savescr 15
  293.     call OutHelp
  294.     Par1=-1
  295.     restscr 15
  296.   endif
  297. endp
  298.  
  299. proc ChangeVol
  300.   window 7,12,74,23
  301.   setcolor YELLOW,BLUE
  302.   gotoxy 1,inswrow
  303.  
  304.   if Par2 == 0
  305.     Par1=Par1+2
  306.     text "... Diskette #",Par1," einlegen."
  307.     savescr 14
  308.     Par1=-1
  309.     sound 2300,25
  310.     delay 100
  311.     sound 1450,100
  312.     sound 5450,50
  313.     sound 7450,25
  314.     sound 1450,100
  315.     window 1,1,80,25
  316.     Choice = Menu 30,15,WHITE,GREEN,1,"Diskette wechseln","   Fortsetzen    ","    Abbrechen    "
  317.     restscr 14
  318.  
  319.     if Choice == 2
  320.       window 1,1,80,25
  321.       setcolor WHITE,BLACK
  322.       clrscr
  323.       gotoxy 2,3
  324.       text " Diskette nicht gefunden. Abbruch! "
  325.       exit 1
  326.     endif
  327.   endif
  328.  
  329.   if Par2 != 0
  330.     setcolor LIGHTCYAN,BLUE
  331.     Par1=Par1+1
  332.     text "... Diskette #",Par1," wurde bearbeitet."
  333.   endif
  334.  
  335.   if inswrow = 12
  336.     text "\n"
  337.   endif
  338.  
  339.   if inswrow < 12
  340.     inswrow=inswrow+1
  341.   endif
  342.   window 1,1,80,25
  343. endp
  344.  
  345. proc FileDone
  346.   gotoxy 50,11
  347.   setcolor LIGHTCYAN,BLUE
  348.   Percent=Par1*100
  349.   Percent=Percent/files
  350.   text Percent,"%% "
  351.   window 7,12,74,23
  352.   setcolor LIGHTCYAN,BLUE
  353.   gotoxy 1,inswrow
  354.   text DestFileName
  355.  
  356.   if inswrow = 12
  357.     text "\n"
  358.   endif
  359.  
  360.   if inswrow < 12
  361.     inswrow=inswrow+1
  362.   endif
  363.   window 1,1,80,25
  364. endp
  365.  
  366. proc Error
  367.   window 7,12,74,23
  368.   setcolor LIGHTCYAN,BLUE
  369.   gotoxy 1,inswrow
  370.   Title="Fehler!"
  371.  
  372.   ; Par1 enthält die Fehlernummer:
  373.  
  374.   if Par1 == 1
  375.     Message="Schwerer Fehler"
  376.     call ErrMsg
  377.   endif
  378.  
  379.   if Par1 == 2
  380.     Message="CRC Fehler, Archiv beschädigt"
  381.     call ErrMsg
  382.   endif
  383.  
  384.   if Par1 == 3
  385.     Message="Schreibfehler"
  386.     call ErrMsg
  387.   endif
  388.  
  389.   if Par1 == 4
  390.     Message="Fehler beim Erstellen der Datei"
  391.     call ErrMsg
  392.   endif
  393.  
  394.   if Par1 == 5
  395.     Message="Lesefehler"
  396.     call ErrMsg
  397.   endif
  398.  
  399.   if Par1 == 6
  400.     Message="Fehler beim Schließen der Datei"
  401.     call ErrMsg
  402.   endif
  403.  
  404.   if Par1 == 7
  405.     Message="Fehler beim Öffnen der Datei"
  406.     call ErrMsg
  407.   endif
  408.  
  409.   if Par1 == 8
  410.     Message="Nicht genügend Speicher"
  411.     call ErrMsg
  412.   endif
  413.  
  414.   if inswrow = 12
  415.     text "\n"
  416.   endif
  417.  
  418.   if inswrow < 12
  419.     inswrow=inswrow+1
  420.   endif
  421.   window 1,1,80,25
  422. endp
  423.  
  424. proc ErrMsg
  425.   window 17,14,62,21
  426.   setcolor WHITE,RED
  427.   clrscr
  428.   window 1,1,80,25
  429.   box 20,15,59,20,WHITE,RED,DOUBLE
  430.   gotoxy 1,15
  431.   ctext " ",Title," "
  432.   gotoxy 1,17
  433.   ctext Message
  434.   setcolor WHITE,BLACK
  435.   gotoxy 1,19
  436.   ctext " Ok "
  437.   sound 20,5
  438.   sound 80,50
  439.   delay 15000
  440.   window 1,1,80,25
  441. endp
  442.  
  443. proc ArcDone
  444.   sound 3300,25
  445.   delay 100
  446.   sound 2450,100
  447.   window 7,12,74,23
  448.   setcolor LIGHTCYAN,BLUE
  449.   gotoxy 1,inswrow
  450.   text "Fertig. Installation beendet"
  451.   delay 500
  452.   savescr 2
  453.   Title="Installations-Status"
  454.   Message=" Beendet "
  455.   call OkMsg
  456.   restscr 2
  457.   window 1,1,80,25
  458.  
  459.   ; Laufwerk wechseln
  460.   SYSTEM DestDir,
  461.   ; Verzeichnis wechseln
  462.   SYSTEM "CD ",DestDir,"."
  463.  
  464.   call ClearScreen
  465.  
  466.   ; externes Installationsprogramm aufrufen
  467.   ; SYSTEM "IF EXIST ", DestDir, "INSTALL.EXE", DestDir, "INSTALL.EXE"
  468.  
  469.   setcolor WHITE,BLACK
  470.   exit
  471. endp
  472.  
  473. proc ClearScreen
  474.   i=1
  475.   loop:
  476.     if i > 13
  477.       goto exloop
  478.     endif
  479.     j=81-i
  480.     k=26-i
  481.     box i,i,j,k,LIGHTBLUE,BLACK,DOUBLE
  482.     i=i+1
  483.   goto loop
  484.  
  485.   exloop:
  486.   i=1
  487.   loop1:
  488.     if i > 13
  489.       goto exloop1
  490.     endif
  491.     j=81-i
  492.     k=26-i
  493.     box i,i,j,k,BLACK,BLACK,SINGLE
  494.     i=i+1
  495.   goto loop1
  496.  
  497.   exloop1:
  498.     window 1,1,80,25
  499. endp
  500.  
  501. proc OkMsg
  502.   window 24,14,57,21
  503.   setcolor BLACK,WHITE
  504.   clrscr
  505.   window 1,1,80,25
  506.   box 27,15,53,20,BLACK,WHITE,DOUBLE
  507.   gotoxy 1,15
  508.   ctext " ",Title," "
  509.   gotoxy 1,17
  510.   ctext Message
  511.   setcolor WHITE,BLACK
  512.   gotoxy 1,19
  513.   ctext " Ok "
  514.   delay 50000
  515.   window 1,1,80,25
  516. endp
  517.  
  518. proc OutHelp
  519.   ; Hilfe anzeigen
  520.   savescr 13
  521.   setcolor BLACK,CYAN
  522.   window 6,7,75,19
  523.   clrscr
  524.   gotoxy 1,14
  525. ;text "╔═══════════════════════ Hilfe zur Installation ══════════════════════╗\n"
  526.   text "                                                                     \n"
  527.   text " - Wählen Sie aus dem Menü ZIELVERZEICHNIS ÄNDERN, wenn Sie das Ziel-\n"
  528.   text "   verzeichnis ändern möchten oder nicht genügend  Speicherplatz zur \n"
  529.   text "   Verfügung steht. Geben Sie anschließend das  gewünschte  Laufwerk \n"
  530.   text "   und Verzeichnis an und drücken Sie die EINGABETASTE.              \n"
  531.   text "                                                                     \n"
  532.   text " - Beginnen Sie  die  Installation  durch  Auswahl  des  Menüpunktes \n"
  533.   text "   INSTALLATION STARTEN. Sie werden ggf.  automatisch  zum  Wechseln \n"
  534.   text "   der Diskette aufgefordert.                                        \n"
  535.   text "                                                                     \n"
  536.   text " - Falls Sie die Installation nicht durchführen möchten, wählen  Sie \n"
  537.   text "   den Menüpunkt ENDE.                                               \n"
  538. ;text "                                                                       \n"
  539. ;text "╚════════════════════ Weiter mit beliebiger Taste ════════════════════╝\n"
  540.   window 1,1,80,25
  541.   box 5,6,75,20,BLACK,CYAN,DOUBLE
  542.  
  543.   window 5,6,75,20
  544.   setcolor WHITE,CYAN
  545.   gotoxy 25,1
  546.   text " Hilfe zur Installation "
  547.   gotoxy 22,15
  548.   text " Weiter mit beliebiger Taste "
  549.  
  550.   setcolor YELLOW,CYAN
  551.   gotoxy 29,3
  552.   text "ZIELVERZEICHNIS ÄNDERN"
  553.   gotoxy 5,9
  554.   text "INSTALLATION STARTEN"
  555.   gotoxy 19,13
  556.   text "ENDE"
  557.  
  558.   setcolor LIGHTCYAN,CYAN
  559.   gotoxy 44,6
  560.   text "EINGABETASTE"
  561.  
  562.   ; Schatten unten
  563.   setcolor DARKGRAY,CYAN
  564.   window 7,21,77,21
  565.   clrscr 219
  566.  
  567.   ; Schatten rechts
  568.   setcolor DARKGRAY,CYAN
  569.   window 76,7,77,21
  570.   clrscr 219
  571.  
  572.   ; Pause bis Taste
  573.   delay
  574.   restscr 13
  575.   window 1,1,80,25
  576. endp
  577.  
  578.