Paketierungs-Beispiel: VLC-Media Player 226 mit customizing

Moderator: MVogt

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

Paketierungs-Beispiel: VLC-Media Player 226 mit customizing

Post by Theo_Gottwald » 21. Nov 2017, 11:46

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.

Der VLC-Media Player ist ein bekanntes Programm, wo es auch oft Updates gibt.
So muß man das auch hier und da nachziehen, wenn man das Paket nicht fix- und fertig kaufen will.

Auch hier kann man das Skript einfach so nehmen, wie es der InstaRec aufgezeichnet hat.
Bis auf das "Customizing", also wenn man bestimmte erweiterte Optionen auswählen möchte.
Falls man das benötigt muß man da noch Mal kurz Hand anlegen und ein MLI\ an der Stelle einfügen.

Die Aufzeichnung von InstaRec sieht da bei der Deinstallation so aus, das ist die Stelle wo ich noch auf "Einstellungen und Cache löschen" geklickt habe.

Code: Select all

' No.:3 | Time: 10:59:51 | Ticks:  99
 ' The Mouseclick below has been commented by InstaRec because TVI\ ... |i Option.
VAR\$$PRO=10003
STW\#32770\VLC media player Deinstallation|w45
GCW\1032\2\SysTreeView32\|w45
SAW\
TVI\Einstellungen und Cache löschen|i
' In der folgenden Zeile wird das auskommentierte MEL\ durch ein MLI\ ersetzt
MEL\
Man sieht unten dass der InstaRec den Mausklick als MEL\ aufgezeichnet und dann wieder auskommentiert hat.
Nun ist der erste Test in dem ich einfach den Mausklick wieder einkommentiere.

Der Test zeigt dann, dass der MEL\ hier nicht dazu führt dass das Checkmark gesetzt wird. Also schreibe ich stattdessen "MLI\" und schon funktioniert es auch mit "customizing".
Dieses Programm will augenscheinlich eben einen "echten Mausklick". Und den bekommt es mit MLI\ oder MLC\.

Die gleiche Änderung mache ich dann auch bei der Installation und teste daß diese auch genauso funktioniert:

Code: Select all

' No.:6 | Time: 10:57:08 | Ticks:  581
VAR\$$PRO=10006
STW\#32770\VLC media player Installation|w45
GCW\1032\2\SysTreeView32\|w45
SAW\
TVI\Web-Plugins\ActiveX-Plugin
MLI\

' No.:7 | Time: 10:57:18 | Ticks:  853
VAR\$$PRO=10007
STW\#32770\VLC media player Installation|w45
GCW\1032\2\SysTreeView32\|w45
SAW\
TVI\Lösche die Einstellungen und den Cache
MLI\
Ich habe zudem zwei weitere kleine Änderungen gemacht, die sich aus den Tests ergeben haben.

Zunächst habe ich beim Testen auf einem langsamen System festgestellt, dass die Zeit sehr knapp ist, und daher in Zeile 123 bei der Installation eine längere Wartezeit eingetragen.

Code: Select all

VAR\$$PRO=10011
' Hier habe ich die "w70" in "w160" umgeändert
STW\#32770\VLC media player Installation|w160
GCW\1203\2\Button\VLC media player ausführen|w160
SAW\
BTC\0
Zum Zweiten habe ich bei dem BSC in Zeile 62 eine längere Wartezeit eingetragen: 1000 statt 240,
da es vorkam dass das BSC auch noch den folgenden Weiter-Button mit ausgelöst hat.
Dann steht die Installation auch. Auf der einen Seite gibt uns das BSC mehr Sicherheit,
aber man muß auch aufpassen dass es nicht zu weit geht.

Code: Select all

' No.:4 | Time: 10:56:51 | Ticks:  182
VAR\$$PRO=10004
STW\#32770\VLC media player Installation|w45
GCW\1\1\Button\&Weiter|w45
SAW\
BSC\1||7|1000
Um den Code ein wenig zu verschönern habe ich bei der Deinstallation noch einen Label
":enx" in Zeile 70 eingefügt - also am Skriptende. Und am Skriptanfang ein

Code: Select all

NAI\VLC media player
GOTO enx
EAI\
Das bewirkt dass die Deinstallation übersprungen wird, wenn das Programm nicht auf dem System installiert ist.
Das liest sich jetzt kompliziert als es in der Praxis ist. Wenn man das mal gemacht hat kann man das immer wieder tun,
auch bei anderen Setup-Programmen. Die möglichen Ursachen für kleine Problemchen sind ja oft die Gleichen.
Und deswegen macht der InstaRec praktisch die Lösung auch schon auskommentiert in den Code mit dazu.

Der Test erfolgt dann mit auskommentiertem "DIP\150" also mit maximaler Schnelligkeit. Beim fertigen Paket machen wir dann das DIP\150 wieder rein, so haben wir eine Sicherheits-Reserve. Insbesondere nach dem Customizing kann man bei solchen Setup-Programmen evtl. auch noch Mal eine kleine Pause von 250 ms rein machen. Zum Beispiel mit "TDL\250".
Im real Life ist der User halt niemals so schnell im Klicken wie ein Robot.

Hier nun die fertige Installation VLC-Mediaplayer mit customizing:

Code: Select all

' +++ Install_vlc226win32.rem +++
' Zweck: 
' erstellt am: 21.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-21-2017 um 10:59:18 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\VideoLAN\VLC
' 
' No.:1 | Time: 10:56:01 | 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=vlc-2.2.6-win32.exe
GSB\LocateSetup
' Der komplette Pfad zum Setup ist nun in der Variablen $$SEB
EXS\$$SEB
VAR\$$PID=$v4$

' No.:2 | Time: 10:56:33 | Ticks:  116
VAR\$$PRO=10002
GTW\#32770\Installer Language|w45
GCW\1002\1\ComboBox\*|w45
SAW\
SCI\Deutsch
' MPO\o\203,9
CDD\1
CDD\0

' No.:3 | Time: 10:56:40 | Ticks:  140
VAR\$$PRO=10003
STW\#32770\Installer Language|w45
GCW\1\1\Button\OK|w45
SAW\
BCS\1||7|240

' No.:4 | Time: 10:56:51 | Ticks:  182
VAR\$$PRO=10004
STW\#32770\VLC media player Installation|w45
GCW\1\1\Button\&Weiter|w45
SAW\
BSC\1||7|1000

' No.:5 | Time: 10:56:57 | Ticks:  304
' Die folgenden Textfelder wurden gefunden: 
'  1. Static\VideoLAN VLC media player
'  2. Static\VideoLAN VLC media player
'  3. Static\Lizenzabkommen
'  4. Static\Bitte lesen Sie die Lizenzbedingungen durch, bevor Sie mit der I
'  5. Static\Drücken Sie die Bild-nach-unten Taste, um den Rest des Abkommens
VAR\$$PRO=10005
STW\#32770\VLC media player Installation|w45
' Dieser Befehl wird zwischen mehreren gleichen Buttons eingeschoben um die Button-Klicks zu entkoppeln.
STC\Static\Bitte lesen Sie die Lizenzbedingungen durch, bevor Sie mit der I|w45
TDL\40
GCW\1\1\Button\&Weiter|w45
SAW\
BSC\1||7|240

' No.:6 | Time: 10:57:08 | Ticks:  581
VAR\$$PRO=10006
STW\#32770\VLC media player Installation|w45
GCW\1032\2\SysTreeView32\|w45
SAW\
TVI\Web-Plugins\ActiveX-Plugin
' MPO\o\48,88
MLI\

' No.:7 | Time: 10:57:18 | Ticks:  853
VAR\$$PRO=10007
STW\#32770\VLC media player Installation|w45
GCW\1032\2\SysTreeView32\|w45
SAW\
TVI\Lösche die Einstellungen und den Cache
' MPO\o\29,90
MLI\
TDL\250

' No.:8 | Time: 10:57:21 | Ticks:  926
VAR\$$PRO=10008
STW\#32770\VLC media player Installation|w45
GCW\1\1\Button\&Weiter|w45
SAW\
BSC\1||7|240

' No.:9 | Time: 10:57:23 | Ticks:  969
VAR\$$PRO=10009
STW\#32770\VLC media player Installation|w45
SWP\388,244|503,390
GCW\1019\2\Edit\*|w45
SAW\
RST\$$000|0,-1


' No.:10 | Time: 10:57:26 | Ticks:  1048
VAR\$$PRO=10010
STW\#32770\VLC media player Installation|w45
GCW\1\1\Button\&Installieren|w45
SAW\
MEL\

' No.:11 | Time: 10:59:13 | Ticks:  1492
VAR\$$PRO=10011
STW\#32770\VLC media player Installation|w160
GCW\1203\2\Button\VLC media player ausführen|w70
SAW\
BTC\0

' No.:12 | Time: 10:59:15 | Ticks:  1510
VAR\$$PRO=10012
STW\#32770\VLC media player Installation|w45
GCW\1\1\Button\&Fertig stellen|w45
SAW\
BCS\1||7|240

' No.:13 | Time: 10:59:18 | Ticks:  1561
' 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
@

'================================================
' 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 auch die Deinstallation:

Code: Select all

' +++ Uninstall_VLCmediaplayer226.rem +++
' Zweck: 
' erstellt am: 21.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\
NAI\VLC media player
   GOTO enx
EAI\

' 
' Dieses Skript wurde am 11-21-2017 um 11:04:05 für Theo Gottwald erstellt.
' Von Ihrem Matrix42 Installations-Rekorder. Programm-ID:20170210'
 ' 
' No.:1 | Time: 10:59:46 | Ticks:  0
VAR\$$PRO=10001
' Durch Auskommentieren können Sie unterschiedliche Verfahren verwenden.
' EXU\VLC media player 2.2.6|u
EXS\?progs\VideoLAN\VLC\uninstall.exe
VAR\$$PID=$v4$

' No.:2 | Time: 10:59:48 | Ticks:  19
VAR\$$PRO=10002
STW\#32770\VLC media player Deinstallation|w45
GCW\1\1\Button\&Weiter|w45
SAW\
BSC\1||7|240

' No.:3 | Time: 10:59:51 | Ticks:  99
 ' The Mouseclick below has been commented by InstaRec because TVI\ ... |i Option.
VAR\$$PRO=10003
STW\#32770\VLC media player Deinstallation|w45
GCW\1032\2\SysTreeView32\|w45
SAW\
TVI\Einstellungen und Cache löschen|i
' MPO\o\11,25
MLI\
TDL\250

' No.:4 | Time: 10:59:55 | Ticks:  172
VAR\$$PRO=10004
STW\#32770\VLC media player Deinstallation|w45
GCW\1\1\Button\&Deinstallieren|w45
SAW\
BSC\1||7|240

' No.:5 | Time: 10:59:59 | Ticks:  289
VAR\$$PRO=10005
STW\#32770\VLC media player Deinstallation|w45
GCW\1\1\Button\&Fertig stellen|w45
SAW\
BCS\1||7|240

' No.:6 | Time: 11:04:05 | Ticks:  7153
' 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
:enx
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 1 guest