! Smart Package Robot 's Script language

<< Click to Display Table of Contents >>

Navigation:  3. Script Language >

! Smart Package Robot 's Script language

! Smart Package Robot 's Script language

Previous Top Next


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!

 

graphic

 

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.

 

 

Sample-Script:

 

'#######################################################################

' 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.