Paketierungs-Beispiel: Virtual Clone Drive 5.5

Moderator: MVogt

Post Reply
User avatar
Theo_Gottwald
Posts: 367
Joined: 03. Oct 2009, 08:57
Location: Herrenstr.11 * 76706 Dettenheim
Contact:

Paketierungs-Beispiel: Virtual Clone Drive 5.5

Post by Theo_Gottwald » 20. Nov 2017, 17:33

Ich habe hier ein paar von den "Heise Top 10" Downloads paketiert.
Das Ziel ist zu zeigen, wie man mit geringen oder keinen Änderungen schnell so ein visuelles Paket machen kann.

Hier ist nun "Virtual CD Clone Drive". Das wird gerne genommen damit man nicht ständig irgendwelche CD's eingelegt haben muß. Auch hier konnte man das Skript mit dem InstaRec einfach aufzeichnen, inklusive der Optionen.

"Installation failed!" und geht trotzdem.
Bei der Installation kommt dann jedoch eine FM "Installation failed!" die lediglich mit "OK" quittiert werden muß.
In diesem Fall habe ich die einfach als PopUp aufgezeichnet (PopUp Button beim InstaRec auf "I" nach dem Klick auf "OK")
Das Programm ist jedoch trotzdem installiert und funktioniert augenscheinlich.
Da die FM als PopUp aufgezeichnet wurde, funktioniert das Skript dann egal ob die FM später kommt oder nicht.

Bei der Deinstallation mußte man auch noch Mal Hand anlegen. Auch hier war es nur eine Kleinigkeit.
Die vom InstaRec standardmäßig ausgelesen Deinstallation: "'EXS\?progs\Elaborate$sp$Byte..."
hat hier nicht funktioniert. Und genau für diese Fälle ist darüber ja auch auskommentiert die Zeile
"EXU\VirtualCloneDrive 5.5.0.0|u"
Ein erster Test zeigt dass auch diese die Deinstallation nicht startet. Das kann vorkommen wenn der Eintrag nicht haargenau passt. Zum Glück implementiert der EXU\-Befehl eine Wildcard-Funktion. Man muß also gar nicht ganz genau schreiben was da steht. Meistens ist es einfach die Seriennummer die nicht genau passt. Also weg damit. Ich schreibe:
"EXU\VirtualCloneDrive|u"
und geht.

Code: Select all

' +++ Install_setupvcd5500.rem +++
' Zweck: 
' erstellt am: 20.11.2017
' von: Theo Gottwald
'========================
'#EXE:?path
' Um die Setup-Dateien in das Paket einzubinden, entfernen Sie das erste ! in der folgenden Zeile.
'#!INC:?path\@
'#SPI:ForceWrite
'#SPI:VBRun
'#SPI:NoAuto
'#SPI:x64
'#FDC:Ask
'#MAN:ra
'
KRM\2
IEX\
   EVG\LogDirectory>$$LOG      ' Set log directory
   USM\4|$$LOG\SetupErrorLog\  ' Use silent mode with redirected error messages to error files
   DIP\150                     ' 150 ms delay between each command
EEX\
' 
' Dieses Skript wurde am 11-20-2017 um 13:47:03 für Theo Gottwald erstellt.
' Von Ihrem Matrix42 Installations-Rekorder. Programm-ID:20170210'
' Die folgende Zeile schaltet die Fehlerbehandlung an, wenn USM\ verwendet wird. Fügen Sie ggf. eigene Befehle hier ein, wie zum Beispiel IAI\
VAR\$$PRO=10000
' 
' Hier können Sie Texte und Pfade ändern, die im Skript verwendet werden.
VAR\$$000=?progs\Elaborate$sp$Bytes\VirtualCloneDrive
' 
VAR\$$*00=#32770\Virtual CloneDrive\OK\Installation failed!
VAR\$$*01=#32770\VirtualCloneDrive Setup\&Nein\Ihr Computer muss neu gestartet werden. Jetzt neu starten?
WBC\$$*00<>$$*01
' No.:1 | Time: 13:45:46 | Ticks:  0
VAR\$$PRO=10001
' Das Skript ermittelt automatisch ob das Setup-Executable in das Paket eingebunden ist oder ob das Setup im gleichen Ordner neben dem Paket liegt.
VAR\$$SEA=setupvcd5500.exe
GSB\LocateSetup
' Der komplette Pfad zum Setup ist nun in der Variablen $$SEB
EXS\$$SEB 

' No.:2 | Time: 13:45:47 | Ticks:  4
VAR\$$PRO=10002
STW\#32770\VirtualCloneDrive Setup: Lizenzabkommen|w45
GCW\1\1\Button\Ich stimme zu!|w45
SAW\
BSC\1||7|240

' No.:3 | Time: 13:46:01 | Ticks:  230
VAR\$$PRO=10003
STW\#32770\VirtualCloneDrive Setup: Installationsoptionen|w45
GCW\1016\2\ListBox\Programmdateien (erforderlich)|w45
SAW\
LBE\Assoziiere$sp$.img$sp$Dateien
' MPO\o\10,116
MEL\

' No.:4 | Time: 13:46:06 | Ticks:  293
VAR\$$PRO=10004
STW\#32770\VirtualCloneDrive Setup: Installationsoptionen|w45
GCW\1016\2\ListBox\Programmdateien (erforderlich)|w45
SAW\
LBE\Assoziiere$sp$.udf$sp$Dateien
' MPO\o\12,134
MEL\

' No.:5 | Time: 13:46:12 | Ticks:  404
VAR\$$PRO=10005
STW\#32770\VirtualCloneDrive Setup: Installationsoptionen|w45
GCW\1\1\Button\Weiter|w45
SAW\
BSC\1||7|240

' No.:6 | Time: 13:46:14 | Ticks:  435
VAR\$$PRO=10006
STW\#32770\VirtualCloneDrive Setup: Installationsverzeichnis|w45
SWP\427,293|426,292
GCW\1019\2\Edit\*|w45
SAW\
RST\$$000|0,-1


' No.:7 | Time: 13:46:18 | Ticks:  520
VAR\$$PRO=10007
STW\#32770\VirtualCloneDrive Setup: Installationsverzeichnis|w45
GCW\1\1\Button\Installieren|w45
SAW\
MEL\

' No.:8 | Time: 13:46:30 | Ticks:  712
VAR\$$PRO=10008
STW\#32770\Windows-Sicherheit|w45
GCW\\3\Button\&Nicht installieren|w45
SAW\
BCS\1||7|240

' 
' Wir nehmen an, dass dieses Fenster ein PopUp-Fenster ist. (01).
' Der auskommentierte Code wurde ersetzt durch WBC\ Nr.00 .
' Diese Textfelder wurden gefunden: 
'  1. Installation failed!
'
' No.:9 | Time: 13:46:42 | Ticks:  927
' VAR\$$PRO=10009
' STW\#32770\Virtual CloneDrive|w45
' GCW\2\1\Button\OK|w45
' MEL\

' No.:10 | Time: 13:46:48 | Ticks:  999
VAR\$$PRO=10010
STW\#32770\VirtualCloneDrive Setup: Fertig!|w66
GCW\1\1\Button\Schliessen|w66
GPI\$$PID
SAW\
MEL\

' 
' Wir nehmen an, dass dieses Fenster ein PopUp-Fenster ist. (01).
' Der auskommentierte Code wurde ersetzt durch WBC\ Nr.01 .
' Diese Textfelder wurden gefunden: 
'  1. Ihr Computer muss neu gestartet werden. Jetzt neu starten?
'
' No.:11 | Time: 13:46:54 | Ticks:  1062
' VAR\$$PRO=10011
' STW\#32770\VirtualCloneDrive Setup|w45
' GCW\7\1\Button\&Nein|w45
' MEL\

' No.:12 | Time: 13:47:03 | Ticks:  1159
VAR\$$PRO=10012
 ' Die Zahl nach dem | (Pipe Symbol) gibt das timeout in Sekunden an. Es wird berechnet aus 3 Mal die Zeit-Differenz zwischen hier und Block Nr. 12.
WPT\$$PID|237
JIT\Always

VAR\$$PRO=0
:Always
JIV\$$PRO!0|ErrorHandler
SRV\0
@

'================================================
' Unterprogramme
'================================================
' Stelle fest, wo das Setup-Executable sich befindet.
:LocateSetup
' Finde heraus, ob die Setup.exe im gleichen Ordner wie das Paket liegt.
VAR\$$SEB=$ev4$\$$SEA
IEF\$$SEB
   GOTO LeaveLocateSetup
EEF\
' Finde den Pfad zur Setup.exe Datei, egal ob diese in das Paket eingebunden ist oder neben dem Paket liegt.
VAR\$$SEB=?path\$$SEA
IEF\$$SEB
   GOTO LeaveLocateSetup
ELSE
   VAR\$$ERO=Setup.exe-Datei kann nicht gefunden werden. Bitte prüfen Sie die Schreibweise und ob die Datei vorhanden ist.
   GOTO Always
EEF\
:LeaveLocateSetup
RET\

'================================================
' Error-Handler: (Fehlerbehandlung) Schreibt die Fehlermeldung ($$ERT) in die Error-Log Datei.
'================================================
:ErrorHandler
' Stelle fest, ob das $$LOG-Verzeichnis schon angegeben wurde.
VRT\$$LOG\
VBT\$$LOG
JIF\$$LOG|Lab_valid
VAR\$$LOG=#?#?#
:Lab_valid
VAR\$$PAT=$$LOG\
' Wenn kein Ausgabepfad für die Fehlerdatei angegeben wurde, verwende den Pfad wo das Paket selbst liegt.
NEF\$$PAT
   VAR\$$PAT=$ev4$\
EEF\
NEV\$$ERO
   VAR\$$ERO=Der Aussprung erfolgte aus Block Nr.$$PRO
EEV\
VAR\$$ERT=$date$-$time$$crlf$
VAR\$$ERT=$$ERTEin Fehler ist aufgetreten in Zeile:$errlin$.$crlf$
VAR\$$ERT=$$ERT$$ERO$crlf$
VAR\$$ERT=$$ERTDie Fehlermeldung lautet: $crlf$<$errtxt$>$crlf$
' Mache einen Screenshot vom letzten Fenster, oder dem gesamten Desktop.
VAR\$$ERF=$$PAT\SetupErrorLog.jpg
SCS\$$ERF
' Schreibe die Error-Log Datei. (ATF\=Append).
VAR\$$ERF=$$PAT\SetupErrorLog.txt
ATF\$$ERF<$$ERT
' Verlasse die Fehlerbehandlung(Exit Error-Handler).
SRV\$$PRO
END\1


Und die Deinstallation:

Code: Select all

' +++ Uninstall_VirtualCloneDrive5500.rem +++
' Zweck: 
' erstellt am: 20.11.2017
' von: Theo Gottwald
'========================
'#EXE:?path
'#SPI:ForceWrite
'#SPI:VBRun
'#SPI:NoAuto
'#SPI:x64
'#FDC:Ask
'#MAN:ra
'
KRM\2
IEX\
   EVG\LogDirectory>$$LOG      ' Set log directory
   USM\4|$$LOG\SetupErrorLog\  ' Use silent mode with redirected error messages to error files
   DIP\150                     ' 150 ms delay between each command
EEX\
' 
' Dieses Skript wurde am 11-20-2017 um 17:17:23 für Theo Gottwald erstellt.
' Von Ihrem Matrix42 Installations-Rekorder. Programm-ID:20170210'
 ' 
' No.:1 | Time: 17:17:12 | Ticks:  0
VAR\$$PRO=10001
' Durch Auskommentieren können Sie unterschiedliche Verfahren verwenden.
 EXU\VirtualCloneDrive|u
'EXS\?progs\Elaborate$sp$Bytes\VirtualCloneDrive\vcd-uninst.exe"$sp$/D="?progs\Elaborate$sp$Bytes\VirtualCloneDrive
VAR\$$PID=$v4$

' No.:2 | Time: 17:17:14 | Ticks:  28
VAR\$$PRO=10002
STW\#32770\VirtualCloneDrive Deinstallation: Bestätigen|w45
GCW\1\1\Button\Deinstallieren|w45
SAW\
BSC\1||7|240

' No.:3 | Time: 17:17:21 | Ticks:  201
VAR\$$PRO=10003
STW\#32770\VirtualCloneDrive Deinstallation: Fertig!|w45
GCW\1\1\Button\Schliessen|w45
SAW\
BCS\1||7|240

' No.:4 | Time: 17:17:22 | Ticks:  234
' Dieser Befehl veranlasst das Skript abzuwarten, bis die gesteuerte Applikation sich beendet, oder die Timeout-Zeit überschritten wird.
' Die Zahl nach dem | (Pipe Symbol) gibt das Timeout in Sekunden an. Es wird generell mit 360 Sekunden festgelegt. Bitte korrigieren Sie diese Zahl manuell falls erforderlich.
WPT\$$PID|360
JIT\Always

VAR\$$PRO=0
:Always
JIV\$$PRO!0|ErrorHandler
SRV\0
@

:ErrorHandler
' Wenn das Skript hier landet, ist ein Fehler aufgetreten
' der Returncode des Skripts entspricht dann der Blocknummer, wo der Fehler aufgetreten ist.
SRV\$$PRO
END\1



Post Reply

Return to “Package Robot”

Who is online

Users browsing this forum: No registered users and 2 guests