VBS-Script um mehrere Programme nach Rechnerstart zu starten
Mehrere Programme nach der Anmeldung von Windows 7 in bestimmter Reihenfolge starten lassen.
Hallo zusammen,
ich bin auf der Suche nach einem VBS-Script das für mich automatisch nach jeder Anmeldung an meinem Rechner (Windows 7) diverse Programme startet und Registry-Einträge durchführt. Schön wäre auch wenn es ein kleines Statusfenster geben würde wo man sehen kann, bei welchem Schritt das Script aktuell ist. (Auflistung)
Was sollte das Script können:
- Mehrere Programme nacheinander starten in einer bestimmten Reihenfolge (z.B. als erstes: Word, dann Excel, Notepad, usw...)
- Zum Abschluss ein paar Registry-Einträge ändern oder eintragen
- Es wäre schön wenn man ein Statusfenster hätte in dem man sehen kann welche Aufgaben schon erledigt wurden und welche noch anstehen. Es würde mir auch ausreichen wenn der aktuelle Schritt der ausgeführt wird "Fett" markiert ist...
- Es sollte gewartet werden bis das vorherige Programm gestartet wurde bevor das nächste Programm gestartet wird... (ist das überhaupt möglich oder muss man hier mit Pausen arbieten?)
Beispiel für das Statusfenster:
Programm1 starten
Programm2 starten
Programm3 starten
Programm4 starten
Programm5 starten
Registry-Einträge
Ende
Vielen Dank.
Gruß
Crus
Hallo zusammen,
ich bin auf der Suche nach einem VBS-Script das für mich automatisch nach jeder Anmeldung an meinem Rechner (Windows 7) diverse Programme startet und Registry-Einträge durchführt. Schön wäre auch wenn es ein kleines Statusfenster geben würde wo man sehen kann, bei welchem Schritt das Script aktuell ist. (Auflistung)
Was sollte das Script können:
- Mehrere Programme nacheinander starten in einer bestimmten Reihenfolge (z.B. als erstes: Word, dann Excel, Notepad, usw...)
- Zum Abschluss ein paar Registry-Einträge ändern oder eintragen
- Es wäre schön wenn man ein Statusfenster hätte in dem man sehen kann welche Aufgaben schon erledigt wurden und welche noch anstehen. Es würde mir auch ausreichen wenn der aktuelle Schritt der ausgeführt wird "Fett" markiert ist...
- Es sollte gewartet werden bis das vorherige Programm gestartet wurde bevor das nächste Programm gestartet wird... (ist das überhaupt möglich oder muss man hier mit Pausen arbieten?)
Beispiel für das Statusfenster:
Programm1 starten
Programm2 starten
Programm3 starten
Programm4 starten
Programm5 starten
Registry-Einträge
Ende
Vielen Dank.
Gruß
Crus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 156348
Url: https://administrator.de/contentid/156348
Ausgedruckt am: 25.11.2024 um 16:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo crus-online#de!
Zwei Fragen vorweg:
Weshalb die Festlegung auf VBS?
Woran soll das Script erkennen, dass ein Programm (fertig) gestartet wurde? (Auf das Programmende zu warten und dann das nächste Programm zu starten wäre einfach, jeweils eine Pause mit festgelegter Dauer ebenfalls ...)
Grüße
bastla
Zwei Fragen vorweg:
Weshalb die Festlegung auf VBS?
Woran soll das Script erkennen, dass ein Programm (fertig) gestartet wurde? (Auf das Programmende zu warten und dann das nächste Programm zu starten wäre einfach, jeweils eine Pause mit festgelegter Dauer ebenfalls ...)
Grüße
bastla
Hallo crus-online#de!
Ein "Statusfenster" lässt sich mit (nativem) VBS nicht erstellen (von einem - ungetesteten - Ansatz der Art
abgesehen) - da müsstest Du noch zusätzlich zB zu HTML greifen (Stichwort "HTA").
Ansonsten würde eigentlich auch ein Batch genügen:
Grüße
bastla
[Edit] "
Keine Ahnung für was ich die vielen """" brauch
Damit erzeugst Du umgebende Anführungszeichen, lässt sich aber etwas kürzen (s.u.) ...Ein "Statusfenster" lässt sich mit (nativem) VBS nicht erstellen (von einem - ungetesteten - Ansatz der Art
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("""C:\Program Files (x86)\FileZilla FTP Client\filezilla.exe""")
Status = Status & "FileZilla starten"
WshShell.PopUp(Status, 10, "Starten ...", vbOK)
WshShell.Run ("""C:\Program Files (x86)\Microsoft Office\Office12\winword.exe""")
Status = Status & "Word starten"
WshShell.PopUp(Status, 10, "Starten ...", vbOK)
Ansonsten würde eigentlich auch ein Batch genügen:
@echo off & setlocal
echo FileZilla starten
start "FileZilla starten" "C:\Program Files (x86)\FileZilla FTP Client\filezilla.exe"
ping -n 10 localhost>nul
echo Word starten
start "Word starten" "C:\Program Files (x86)\Microsoft Office\Office12\winword.exe"
ping -n 10 localhost>nul
bastla
[Edit] "
start
" im Batch ergänzt [/Edit]
lade dir mal von Microsoft Technet ->Scripting das Programm "HTA-Helpomatic" -> das generiert automatisch HTA-Code für dich.
Ist für den Anfang leichter vorallem wenn du in Html nicht so fit bist.HTA ist vbs bzw js in HTML integriert.
Damit kannt du auch Buttons oder auch Listboxen erstellen um z.B die zu installierenden Anwendungen auszuwählen.
Was du brauchst ist die Onload-Funktion:
du loggst denn Programmablauf in Textfile und lädst z.B das Hta Formular mit einer Textbox alle 10 Sekunden neu mit dem Inhalt des Textfiles.
Beispiele findest du in dem chm_File "HeyScriptingGuy" auch über das Technet Scripting erhältlich
zum starten der Programme ich würde die Pfade der Programme in Konstanten ablegen und diese dann über wshell.run starten
const PROG_WORD = "C:\Programme\office\12.0\winword.exe"
const PROG_EXCEL = "C:\Programme\office\12.0\excel.exe"
const FILE_LOG = "c:\temp\mylog.txt"
set owshell = createobject("Wscript.shell")
set ofso = createobject("Scripting.Filesystemobject")
if not ofso.fileexists(FILE_LOG) Then
set logdatei = ofso.createtextfile(FILE_LOG)
Else
set logdatei = ofso.opentextfile(FILE_LOG,8)
End if
owshell.run PROG_WORD , , True
wscript.sleep 5000
logdatei.writeline "word wurde ausgeführt und beendet"
owshell.run PROG_EXCEL , , True
2.Möglichkeit mit Exec programm ausführen und den Status prüfen(muss Anwendung unterstützen- 0 heist bei meisten Programme das es fehlerfrei ausgeführt wird)
set: word_run = owshell.exec PROG_WORD
do while word_run.Status = 0
wscript.sleep 100
loop
logdatei.writeline "word wurde ausgeführt und beendet"
Ist für den Anfang leichter vorallem wenn du in Html nicht so fit bist.HTA ist vbs bzw js in HTML integriert.
Damit kannt du auch Buttons oder auch Listboxen erstellen um z.B die zu installierenden Anwendungen auszuwählen.
Was du brauchst ist die Onload-Funktion:
du loggst denn Programmablauf in Textfile und lädst z.B das Hta Formular mit einer Textbox alle 10 Sekunden neu mit dem Inhalt des Textfiles.
Beispiele findest du in dem chm_File "HeyScriptingGuy" auch über das Technet Scripting erhältlich
zum starten der Programme ich würde die Pfade der Programme in Konstanten ablegen und diese dann über wshell.run starten
const PROG_WORD = "C:\Programme\office\12.0\winword.exe"
const PROG_EXCEL = "C:\Programme\office\12.0\excel.exe"
const FILE_LOG = "c:\temp\mylog.txt"
set owshell = createobject("Wscript.shell")
set ofso = createobject("Scripting.Filesystemobject")
if not ofso.fileexists(FILE_LOG) Then
set logdatei = ofso.createtextfile(FILE_LOG)
Else
set logdatei = ofso.opentextfile(FILE_LOG,8)
End if
owshell.run PROG_WORD , , True
wscript.sleep 5000
logdatei.writeline "word wurde ausgeführt und beendet"
owshell.run PROG_EXCEL , , True
2.Möglichkeit mit Exec programm ausführen und den Status prüfen(muss Anwendung unterstützen- 0 heist bei meisten Programme das es fehlerfrei ausgeführt wird)
set: word_run = owshell.exec PROG_WORD
do while word_run.Status = 0
wscript.sleep 100
loop
logdatei.writeline "word wurde ausgeführt und beendet"
@m1g0811
Willkommen im Forum!
BTW:
ließe sich nicht nur schöner darstellen , sondern auch auf
kürzen ...
Grüße
bastla
Willkommen im Forum!
BTW:
if not ofso.fileexists(FILE_LOG) Then
set logdatei = ofso.createtextfile(FILE_LOG)
Else
set logdatei = ofso.opentextfile(FILE_LOG,8)
End if
set logdatei = ofso.opentextfile(FILE_LOG,8,True)
Grüße
bastla
Das True bewirkt das die Datei angelegt wird, wenn nicht vorhanden oder?
Weil ich es gerade oben sehe - mehrfache Verwendung der Anführungsstriche in einer Zeile - geht das bei euch?
das hier : """C:\Program Files (x86)\Microsoft Office\Office12\winword.exe"""
Bei mir funktioniert sowas nicht da der wsh, die zweiten Anführungsstriche als Ende deutet und nicht als weiteres Paar innerhalb.
Also:
1: ""
2: "C:\Program Files (x86)\Microsoft Office\Office12\winword.exe"
3: ""
oder liege ich falsch?
Weil ich es gerade oben sehe - mehrfache Verwendung der Anführungsstriche in einer Zeile - geht das bei euch?
das hier : """C:\Program Files (x86)\Microsoft Office\Office12\winword.exe"""
Bei mir funktioniert sowas nicht da der wsh, die zweiten Anführungsstriche als Ende deutet und nicht als weiteres Paar innerhalb.
Also:
1: ""
2: "C:\Program Files (x86)\Microsoft Office\Office12\winword.exe"
3: ""
oder liege ich falsch?
Hallo m1g0811!
Lässt sich auch einfach prüfen:
Du kannst aber natürlich auch zu dieser Schreibweise greifen:
Grüße
bastla
Das True bewirkt das die Datei angelegt wird, wenn nicht vorhanden oder?
Korrekt.mehrfache Verwendung der Anführungsstriche in einer Zeile - geht das bei euch?
Warum denn nicht (2 aufeinanderfolgende Anführungszeichen innerhalb einer String-Konstante ergeben 1 Anführungszeichen)?Lässt sich auch einfach prüfen:
CMDString = """C:\Program Files (x86)\Microsoft Office\Office12\winword.exe"""
MsgBox CMDString
CMDString = Chr(34) & "C:\Program Files (x86)\Microsoft Office\Office12\winword.exe" & Chr(34)
MsgBox CMDString
bastla