Paketierungs-Beispiel: Advanced IP-Scanner (IPScan25)

Moderator: MVogt

Paketierungs-Beispiel: Advanced IP-Scanner (IPScan25)

Beitragvon Theo_Gottwald » 21. Nov 2017, 11:54

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 MPR-Paket machen kann.

Beim "Advanced IP Scanner" habe ich das Skript ganz genauso gelassen wie es der InstaRec aufgezeichnet hat.
Es gibt aber doch eine Kleinigkeit dazu zu sagen.

Ganz am Anfang kommt diese Auswahlbox für Installationssprache. Diese ist ja per-default schon auf "Deutsch".
Also würde man normalerweise darauf nicht noch Mal klicken.

Ich tue das trotzdem und stelle aktiv "Deutsch" ein. Der InstaRec zeichnet das auf.

Wenn das Skript nun auf einem "Nicht-deutschen" Windows läuft, und per default eine andere Sprache eingestellt ist, dann setzt unser Skript die Installationssprache wieder auf "Deutsch".
Das ist notwendig denn sonst würde das Skript nur unter deutschen Windows laufen. Weil die Button-Texte ja in "Deutsch" aufgezeichnet worden sind.

Code: Alles auswählen
' +++ Install_ipscan25.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:39:35 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\Advanced$sp$IP$sp$Scanner\
'
' No.:1 | Time: 13:38:42 | 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=ipscan25.exe
GSB\LocateSetup
' Der komplette Pfad zum Setup ist nun in der Variablen $$SEB
EXS\$$SEB
VAR\$$PID=$v4$

' No.:2 | Time: 13:38:44 | Ticks:  42
VAR\$$PRO=10002
GTW\TSelectLanguageForm\Setup-Sprache auswählen|w45
GCW\\1\TNewComboBox\*|w45
SAW\
SCI\Deutsch$sp$(German)
' MPO\o\224,4
CDD\1
CDD\0

' No.:3 | Time: 13:38:47 | Ticks:  86
VAR\$$PRO=10003
STW\TSelectLanguageForm\Setup-Sprache auswählen|w45
GCW\\1\TNewButton\OK|w45
SAW\
BCS\1||7|240

' No.:4 | Time: 13:39:00 | Ticks:  403
VAR\$$PRO=10004
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w50
GCW\\5\TNewRadioButton\&Installieren|w50
SAW\
BTC\1

' No.:5 | Time: 13:39:03 | Ticks:  455
VAR\$$PRO=10005
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w45
GCW\\5\TNewCheckBox\&Erweiterte Einstellungen|w45
SAW\
BTC\1

' No.:6 | Time: 13:39:05 | Ticks:  485
VAR\$$PRO=10006
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w45
GCW\\1\TNewButton\&Weiter|w45
SAW\
BSC\1||7|240

' No.:7 | Time: 13:39:07 | Ticks:  520
VAR\$$PRO=10007
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w45
SWP\449,265|503,389
GCW\\5\TNewEdit\*|w45
SAW\
RST\$$000|0,-1


' No.:8 | Time: 13:39:12 | Ticks:  612
VAR\$$PRO=10008
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w45
GCW\\1\TNewButton\&Weiter|w45
SAW\
MEL\

' No.:9 | Time: 13:39:13 | Ticks:  637
VAR\$$PRO=10009
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w45
GCW\\5\TNewRadioButton\Ich &akzeptiere die Vereinbarung|w45
SAW\
BTC\1

' No.:10 | Time: 13:39:15 | Ticks:  656
VAR\$$PRO=10010
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w45
GCW\\1\TNewButton\&Installieren|w45
SAW\
MEL\

' No.:11 | Time: 13:39:31 | Ticks:  853
VAR\$$PRO=10011
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w45
GCW\\3\TNewCheckBox\Advanced IP Scanner &starten|w45
SAW\
BTC\0

' No.:12 | Time: 13:39:32 | Ticks:  864
VAR\$$PRO=10012
STW\TWizardForm\Setup - Advanced IP Scanner 2.5|w45
GCW\\1\TNewButton\&Fertigstellen|w45
SAW\
BCS\1||7|240

' No.:13 | Time: 13:39:35 | Ticks:  912
' 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 hier die Deinstallation. Ohne Änderung wie vom InstaRec aufgezeichnet.
Der InstaRec macht hier auch automatisch ein "Warte auf Prozess-Ende" rein.
Ohne dass man etwas dazu tut.
Denn wir haben hier einen Klick, und danach läuft die Deinstallation noch eine Zeit lang.
Das wird hier schön mit dem Matrix synchronisiert.
Das Skript endet erst wenn die Deinstallation auch zu Ende ist.

Code: Alles auswählen
' +++ Uninstall_AdvancedIPScanner25253233.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 13:41:29 für Theo Gottwald erstellt.
' Von Ihrem Matrix42 Installations-Rekorder. Programm-ID:20170210'
 '
' No.:1 | Time: 13:40:55 | Ticks:  0
VAR\$$PRO=10001
' Durch Auskommentieren können Sie unterschiedliche Verfahren verwenden.
' EXU\Advanced IP Scanner 2.5 2.5.3233|u
EXS\MsiExec.exe$sp$/X{5384A10A-BFD0-491C-BD04-471025E807DE}
VAR\$$PID=$v4$

' No.:2 | Time: 13:40:55 | Ticks:  12
VAR\$$PRO=10002
STW\#32770\Windows Installer|w45
GCW\3001\1\Button\&Ja|w45
SAW\
BCS\1||7|240

' No.:3 | Time: 13:41:29 | Ticks:  823
' 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
Benutzeravatar
Theo_Gottwald
 
Beiträge: 291
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim

Zurück zu Package Robot

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast