Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Ablauf mit VBScript automatisieren

spherix / 6 Antworten / Baumansicht Nickles

Hey lot! Ich möchte gerne einen Ablauf mit VBScript automatisieren. Und zwar soll er nach dem PC-Start zwischen 5 und 10sec warten und erst dann eine Datei ausführen... leider habe ich keine Informationen gefunden wie ich das am Besten schreiben soll und welche Schleifen ich brauche...wäre da vielleicht jemand, der helfen könnte??  thanx!!

bei Antwort benachrichtigen
Yogibear spherix „Ablauf mit VBScript automatisieren“
Optionen

Vergiß nicht den Windoofs Scripting Host zu installieren! Leg eine Textdatei an und gib ihr die Endung .vbs. Der Inhalt sollte in etwa so aussehen:

Option Explicit
'On Error Resume Next

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

WScript.Sleep 5000 ' Wait for 5 seconds
WshShell.Run "C:\eine\Datei\ausführen.exe"

Set WshShell = Nothing
WScript.Quit

Dann legst Du noch einen Link im Autostart-Ordner ab und die Sache läuft. Das ist natürlich nur eine stark vereinfachte Version - mehr konnte ich Deiner Beschreibung leider nicht entnehmen. Besuch doch mal http://dieseyer.de/

P.S.: Falls die Fehlermeldung "Das System kann die angegebene Datei nicht finden." erscheint, denk mal scharf nach, was schief gelaufen ist!

bei Antwort benachrichtigen
spherix Yogibear „Vergiß nicht den Windoofs Scripting Host zu installieren! Leg eine Textdatei an...“
Optionen

Tausend Dank!!!
es hat geklappt.
Kann man der Wartezeit auch eine unbestimmte Zeitangabe geben wie z.B.
zwischen 5sec und 10sec??

bei Antwort benachrichtigen
Yogibear spherix „Tausend Dank!!! es hat geklappt. Kann man der Wartezeit auch eine unbestimmte...“
Optionen

Nein. Hinter "WScript.Sleep" steht die Zeitangabe in Millisekunden - also 5000 für 5 Sekunden. Du kannst natürlich 7500 oder irgendwas anderes eintragen. Was hast Du denn vor? Möchtest Du auf ein bestimmtes Ereignis warten? Ich mußte mal einen Programmstart abwarten. Das sah dann so aus:

Do ' Check if program is ready
WScript.Sleep 100
WshShell.AppActivate "Internet Explorer" ' Activate window
Loop While WshShell.AppActivate("Internet Explorer") = FALSE

bei Antwort benachrichtigen
Yogibear Nachtrag zu: „Nein. Hinter WScript.Sleep steht die Zeitangabe in Millisekunden - also 5000...“
Optionen

Jetzt weiß ich leider immer noch nicht genau, was Du vor hast, aber ich rate einfach mal weiter. Wie wär's mit einem Zufallsgenerator, der für eine Verzögerung zwischen 5 und 10 Sekunden sorgt. Vielleicht hast Du das ja gemeint. Dazu müßtest Du nur die Zeile

WScript.Sleep 5000

durch folgendes austauschen:

Randomize ' Init random to sleep 5-10 sec.
WScript.Sleep Int(5001 * Rnd + 5000)

bei Antwort benachrichtigen
spherix Yogibear „Noch 'ne Möglichkeit“
Optionen

ja genau!! vom zufallsgenarator habe ich eben einmal etwas gehört aber wusste nicht mehr wie es hiess. vielen dank!

bei Antwort benachrichtigen
spherix Nachtrag zu: „Noch“
Optionen

Jetzt habe ich folgenden Script:
---------------------------------------
Set WshShell = WScript.CreateObject("WScript.Shell")

Do WshShell.AppActivate "Application Window"
Loop while WshShell.AppActivate("Application Window") = true

Randomize WScript.Sleep Int(5001 * Rnd + 5000) WshShell.Run "W:\Regs\test.reg", 0

Set WshShell = Nothing
WScript.Quit
---------------------------------------
Das Problem ist, ich möchte dass alle Dateien vo einem bestimmten Ordner und mit den Endungen .reg, ausgeführt werden. Die neu gespeicherten Dateien sollen auto. auch ausgeführt werden.
Dies alles sollte aber erst nachdem der Application Window gestartet ist, geschehen(im Hintergrund).
Vielleicht hört es sich einbisschen verwirrend an, aber hoffe jemand könnte mich da weiterhelfen...
vielen Danke!

bei Antwort benachrichtigen