<< Click to Display Table of Contents >> Navigation: 3. Script Language > ! Smart Package Robot 's Script language |
MiniRobotLanguage (MRL)
Smart Package Robot 's Script language
The Script language is executed in stage 4 of the "Script-Execution process" (see picture below).
The Script language tells Smart Package Robot what to do. It will tell her to move the mouse around, to click on buttons. It will make her do key-presses for you and many more other things.
The Script language is the most important part for you to know.
If you know how to use the Script language, you will be able to get Smart Package Robot wake up and running!
Actually you can use 3 Sorts of Scripts:
1. SPR-Script
2. VBS. / JS - Script (See VBS. / VBE.)
3. Powershell-Script (See PWS. / PWE.)
Besides using the Commands, that are already defined for you, you can define own, new commands as ! User-Macros.
'#######################################################################
' Sicherheitspatch 4012212 installieren auf W7
' Version: 15.05.2017
' von: Andreas Walkenhorst
'#######################################################################
'#EXE:?path\
'#SPI:ForceWrite
'#FDC:Compiled by Andreas Walkenhorst
' programm direkt in das Paket einbinden
''#INC:?pfad\<PROGRAMM.EXE>
'EXE\?pfad
'MBX\!
'DWP\3
' Silent mode (keine fehlermeldungen vom Robot.
USM.3
'DIP.150
'#######################################################################
' Globale Variablen setzen
'#######################################################################
VAR.$$TXA=scripted by
VAR.$$TXB=Andreas Walkenhorst
VAR.$$TXP=Sicherheitspatch 4012212
' Aender ?exeloc' zu '?pfad'
' wenn das SETUPFILE includiert ist
VAR.$$PFA=?exeloc
' Process ID
VAR.$$PID
' Programm
VAR.$$PRG=
' ProgrammLevel
VAR.$$PRO=10001
' Wartezeit
VAR.$$TIM=90
' Loggen 1=an 0=aus
VAR.$$LOA=1
' LogText
VAR.$$LOT=Programmstart
' LogZeile
VAR.$$LOZ $now$ $$LOT $crlf$
' LOGPFAD
VAR.$$LOP=c:\temp
' LOGFILE
VAR.$$LOF=$$LOP\spr_log_$$TXP.txt
' TESTMODE 1=an 0=aus
VAR.$$TES=0
' alle anderen Bots killen
MRK.2
' laufen wir im EXE modus? -> loggen
IEM.
' Set log directory
' EVG.LogDirectory>$$LOG
' Use silent mode with redirected error messages to error files
' USM.10|$$LOG\SetupErrorLog\SPR_Error.Log
' 150 ms delay between each command
' DIP.150
EIF.
IVV.$$LOA=1
$$LOT=$now$ Programmstart $$TXP $crlf$
MKD.$$LOP
CTF.$$LOF|$$LOT
EIF.
GSB.TXT_AN
'#######################################################################
'
GSB.MAIN
'GSB.MAILSEND
'
'#######################################################################
GSB.TXT_AUS
VAR.$$PRO=0
VAR.$$LOT= sauber durchgelaufen
GSB.ausgang
PAU.1
GSB.MAILSEND
' Return code = 0 bei erfolgreich
SRV.0
ENR.
'#######################################################################
'
' Unterroutinen
'
'#######################################################################
:on_Error
' Wird nur im Fehlerfall angefahren
VAR.$$LOT=fehlerhaft durchgelaufen
GSB.LOGGEN
PAU.1
'GSB.MAILSEND
CPR.$$PID
' Fehlercode <> 0 zurückgeben
SRV.$$PRO
END.
:TXT_AN
'#######################################################################
' Text anzeigen
'#######################################################################
'VAR.$$TXA=scripted by
'VAR.$$TXB=Andreas Walkenhorst
'VAR.$$TXP=<ProgrammName>
IVV.$$TES=1
RET.
EIF.
VAR.$$PRO=
VAR.$$LOT= TextCover an
GSB.LOGGEN
'fading ausschalten
UCV.nbi
'set farbverlauf hintergrund
UCV.gra|&HFF00FF|&HFFFF00
UCV.font set||64|1||
' Set black foreground color
UCV.fgr|&H040404
' text schreiben
UCV.write|$$TXP|50,100
PAU.250|ms
UCV.wri|$$TXA|150,300
PAU.250|ms
UCV.wri|$$TXB|200,400
RET.
:TXT_AUS
'#######################################################################
' Text ausschalten
'#######################################################################
IVV.$$TES=1
RET.
EIF.
VAR.$$PRO=
VAR.$$LOT= TextCover aus
GSB.LOGGEN
' This will remove the Cover
UCV.
RET.
:LOGGEN
§§TXT=$now$ $$PRO $$LOT$crlf$
ATF.$$LOF|§§TXT
RET.
:MAIN
VAR.$$PRO=10000
VAR.$$LOT=Haben wir es mit WINDOWS 7 zu tun?
GSB.LOGGEN
NOS.Win7
VAR.$$LOT=NICHT WINDOWS 7, somit sauber verlassen
GSB.LOGGEN
GTO.ausgang
EIF.
'
' Fesstellen ob der Patch schon vorhanden ist
GSB.patchchecker
VAR.$$PRO=10001
IVV.$$RES!0
VAR.$$LOT=Patch bereits installiert, somit sauber verlassen
GSB.LOGGEN
GTO.ausgang
ELS.
VAR.$$LOT=Patch muss noch installiert werden
GSB.LOGGEN
EIF.
'#######################################################################
' No.:1 | Time: 07:58:39 | Ticks: 0
VAR.$$PRO=10002
VAR.$$LOT=Installtion nun starten
GSB.LOGGEN
' 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=Sicherheitsqualitätsupdate für Windows 7 für x64-basierte Systeme (KB4012212).msu
GSB.LocateSetup
' Der komplette Pfad zum Setup ist nun in der Variablen $$SEB
EXO.$$SEB
'VAR.$$PRO=10003
'VAR.$$LOT=OK Button druecken
'GSB.LOGGEN
'STW.ct|#32770|Eigenständiges Windows Update-Installationsprogramm
'SCW.nictwo|1|2|Button|OK|5|weiter
' Possible Mouse-Click Commands are: MLE. | MLC. | MLM. | MLI. | BCS. | BCS.
'MLE.
'GTO.ausgang
PAU.5
No.:2 | Time: 07:59:14 | Ticks: 1076
VAR.$$PRO=10003
VAR.$$LOT=JA Button druecken
GSB.LOGGEN
STW.Hwct|172|#32770|Eigenständiges Windows Update-Installationsprogramm
SCW.wctid|172|Button|&Ja|6|1
SFW.
BCS.plts|240
PAU.5
' No.:3 | Time: 08:00:25 | Ticks: 3344
VAR.$$PRO=10004
VAR.$$LOT=Kein Neustart, nur schliessen
GSB.LOGGEN
STW.Hwct|362|#32770|Updates herunterladen und installieren
SCW.wctid|362|Button|Schließen|1|2
SFW.
BCS.plts|240
:ausgang
RET.
:patchchecker
'wmic qfe get hotfixid | find "KB4012212" > c:\temp\KB4012212.txt
$$HOT=KB4012212
$$TXT=C:\temp\$$HOT
$$VAR=wmic qfe get hotfixid | find "$$HOT" > $$TXT
$$ZIE=c:\temp\$$HOT.bat
CTF.$$ZIE|$$VAR
EXC.$$ZIE
$$PID=#pid#
WPT.$$PID
FIL.Length|$$TXT|$$RES
IVV.$$RES!0
VAR.$$EXI=bereits vorhanden
ELS.
VAR.$$EXI=wird installiert
EIF.
RET.
:MAILSEND
GCN.$$PCN
SMP.smtp-server=192.168.44.12
SMP.Server-TimeOut=10
SMP.port=25
SMP.sender=$$PCN@test.de
SMP.receiver=helpdesk@test.de
SMP.subject=SMB Sicherheitspatch 4012212 $$EXI
SMP.text=$$PCN hat das Script gestartet
SMP.auth=Off
SMP.attachment=$$LOF
SMA.
RET.
'================================================
' Unterprogramme default vom Recorder
'================================================
' Stelle fest, wo das Setup-Executable sich befindet.
:LocateSetup
' Finde heraus, ob die Setup.exe im gleichen Ordner wie das Paket liegt.
VAR.$$SEB=?exeloc\$$SEA
IEF.$$SEB
GTO.LeaveLocateSetup
EIF.
' 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
GTO.LeaveLocateSetup
ELS.
VAR.$$ERO=Setup.exe-Datei kann nicht gefunden werden. Bitte prüfen Sie die Schreibweise und ob die Datei vorhanden ist.
GTO.on_Error
EIF.
:LeaveLocateSetup
RET.