Totaal aantal pageviews

donderdag 22 maart 2012

Custom silent installer (with VBScript)

Voor bepaalde software zijn er géén switches om een installatie op de achtergrond te laten lopen. In dat geval is er maar één oplossing: zelf een silent installer schrijven. Toen ik hier wat over opzocht, bleek dat VBScript hiervoor geschikt is.
Voor het programma PDFSam moest ik een installer script schrijven, het enige die nog moest gebeuren is de taal kiezen en op enter drukken. Omdat de taal standaard goed staat (Dutch), moest er enkel nog een druk op de enter toets worden gesimuleerd. Dit is de code om de installatie silent te laten verlopen:
Option Explicit
Dim objShell
Set objShell = CreateObject(“Wscript.Shell”)
objShell.Run “””pdfsam-win-v2_2_1.exe”” /S”
WScript.Sleep 1500
objShell.SendKeys “{ENTER}”
WScript.Quit

Voor de software DWG Trueview is de silent installer schrijven veel complexer:
eerst moet de .exe file gestart worden, hoe lang het duurt voor deze start is afhankelijk van computer tot computer. Omdat het script niet zou verder lopen als de .exe nog niet gestart is, heb ik wat extra code moeten bedenken om dit op te vangen:
Do
            count = count + 1
            if WshShell.AppActivate("DWG TrueView 2012") Then Exit Do
            WScript.Sleep 1500
            if(count > 10) Then Exit Do
Loop
In dit geval wordt er geprobeerd te focussen op het scherm die gestart wordt door de .exe file: WshShell.AppActivate(""). Elke 1.5 seconden wordt dit opnieuw geprobeerd en om niet in een oneindige lus te geraken, wordt deze voorwaarde slechts getest 15 seconden lang.
Daarna moet ik van pagina naar pagina gaan en de verschillende opties aanvinken. Momenteel ben ik er in geslaagd deze installatie te doen door de tab-, pijltjes- en entertoets te simuleren, maar omdat het aantal seconden dat moet gewacht worden tussen de verschillende acties verschilt tussen snelle en trage computers, staat deze code nog niet op punt.

    Geen opmerkingen:

    Een reactie posten