Hi,
ich hab eine Frage: Wie richte ich es ein, dass ein VBS eine .EXE - Datei ausführt. Denn ich möchte mir eine kleine Startroutine zusammen programmieren, die mein System beim Start durch checkt. Gibts da vielleicht auch schon vorgefertigte Scripte?
Schon mal danke für eure Antworten.
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Hallo Georg!
Es gibt zwei Möglichkeiten mit VBScript:
1. Der Befehl "Run" des "Shell"-Objektes:
'==> In diesen Bsp. sind die Variablen kleingeschrieben
'==> Syntax: .Run "Programmpfad" oder .Run """Pfad des Programmes"""
Set she = CreateObject("WScript.Shell")
she.Run """C:\Programme\Internet Explorer\Iexplore.exe"""
Set she = Nothing
'==> Die drei Anführungszeichen sind notwendig, falls Leerzeichen
'==> im der Pfadangabe verwendet werden müssen.
'==> Öffnen einer Datei mit einem Programm:
'==> Syntax: .Run "Programmpfad [Leerzeichen] Dateipfad"
'==> Das nachfolgende Bsp. benutzt wieder drei Anführungszeichen
'==> und String-Zusammenfügung ("&"), um das oben an-
'==> gesprochene Leerzeichenproblem zu umgehen.
Set she = CreateObject("WScript.Shell")
she.Run """C:\Programme\Internet Explorer\Iexplore.exe""" _
& " " & """C:\Eigene Dateien\Bild.gif"""
Set she = Nothing
2. Ähnlich dem "Run"-Objekt können mit dem "Exec"-Objekt Programme und Dateien geöffnet werden, darüber hinaus bietet es jedoch Methoden, zu prüfen, ob das gestartete Programm noch läuft und es skriptgesteuert wieder zu beenden; die Schreibweise für die zu startenden Programme und Dateien entspricht - abgesehen von den obligatorischen Klammern - genau der Syntax des "Run"-Objektes: .Exec ("C:\Programme\...").
ACHTUNG: Für die Unterstützung dieses Objektes brauchst du den Windows Sripting Host (WSH) Version 5.6! Kostenloser Download bei Microsoft.
Set she = CreateObject("WScript.Shell")
Set startprog = she.Exec ("""C:\Programme\Internet Explorer\Iexplore.exe""")
'==> Mit der Eigenschaft "Status" kann in einer Schleife ständig
'==> kontrolliert werden, ob das Programm noch läuft.
'==> Kostet aber ne Menge CPU-Kapazität!
Do Until startprog.Status = 1
[Mache etwas, bis das Programm beendet wird]
Loop
'==> Wenn "[Variable].Status" eine 0 zurückgibt, läuft das Programm noch,
'==> bei einer 1 wurde das Programm beendet.
'==> Wenn ein Programm über "Exec" gestartet wurde, kann das Skript das
'==> Programm auch selbst beenden:
Set she = CreateObject("WScript.Shell")
Set startprog = she.Exec ("""C:\Programme\Internet Explorer\Iexplore.exe""")
WScript.Sleep(9000)
startprog.Terminate
Set startprog = Nothing
Set she = Nothing
'==> Nach einem Tiefschlaf von 9000 Millisekunden beendet das Script wieder das gestartete Programm. Die "Nothing"-Befehle sind nicht unbedingt notwendig, aber ratsam, da sie wieder Arbeitsspeicher freigeben.
MfG
UselessUser