(VBS) Script soll eine Pause machen?
Hi, ich schreibe gerade ein kleines Script. Es soll ein Programm öffnen und ein paar Zeilen "tippen". Aber bis sich das Programm öffnet und ich alles eingestellt habe, vergehen ein paar Sekunden. Wäre es möglich, dass sich das Script kurz pausiert, und dann weiter den Code abarbeitet? habe es schon mit der "sleep"-Funktion versucht, dabei kommt aber die Fehlermeldung (siehe Anhang). Hier der Code:
Dim Anwendung
Set Anwendung = CreateObject("WScript.Shell")
Anwendung.Run "TSWIN7.EXE"
Anwendung.Sleep(10000)
Anwendung.SendKeys "Test"
PS: Ich schreibe eigentlich nie mit VBS, also bitte so gut wie möglich erklären (am besten mit Codebeispiel), so das ich alles verstehe :D

2 Antworten
Die Sleep-Methode hängt am WScript-Object.
Es gibt aber bessere Methoden, da es unterschiedlich lange dauern kann, bis sich ein Fenster geöffnet hat. Verwende besser eine Funktion, die dann terminiert, wenn die Applikation geöffnet wurde oder ein Timeout erreicht wurde.
Beispiel:
Function WinWaitActive(sFenstertitel) WinWaitActive = WinWaitActiveTimeout(sFenstertitel, 0) End Function
Function WinWaitActiveTimeout(sFenstertitel, iTimeoutms) Dim bTimeout: bTimeout = false Dim iVergangen: iVergangen = 0 Dim oShell: Set oShell = CreateObject("Wscript.Shell") Dim bSuccess : bSuccess = false
Do Until bSuccess or bTimeout bSuccess = oShell.AppActivate(sFenstertitel) Wscript.Sleep 500 iVergangen = iVergangen + 500 bTimeout = ((iTimeoutms > 0) and (iVergangen >= iTimeoutms)) Loop WinWaitActiveTimeout = bTimeout Set oShell = Nothing End Function
funktioniert es, wenn du das sleep weglässt?