ProcessWait

Wartet, bis ein bestimmter Prozess existiert.

PID := ProcessWait(PIDOderName , Zeitlimit)

Parameter

PIDOderName

Typ: Integer oder Zeichenkette

Geben Sie entweder eine Nummer (die PID) oder einen Prozessnamen an:

PID (Prozess-ID): Eine Nummer zur eindeutigen Identifizierung eines Prozesses (die Gültigkeit dieser Nummer ist an die Lebensdauer des Prozesses gebunden). Mit Run kann die PID eines neuen Prozesses, der gestartet wurde, ermittelt werden. Mit WinGetPID kann die PID eines Fensters ermittelt werden. ProcessExist kann ebenfalls verwendet werden, um eine PID zu ermitteln.

Name: Der Name eines Prozesses (ohne Pfad), den üblicherweise auch seine EXE-Datei hat, z.B. notepad.exe oder winword.exe. Da ein Name mit mehreren laufenden Prozessen übereinstimmen kann, wird nur der erste Prozess berücksichtigt. Der Name ist nicht Groß-/Kleinschreibung-sensitiv.

Zeitlimit

Typ: Integer oder Float

Wenn weggelassen, wird die Funktion unendlich lang warten. Andernfalls geben Sie die maximale Wartezeit in Sekunden an (kann einen Dezimalpunkt enthalten).

Rückgabewert

Typ: Integer

Wenn der angegebene Prozess gefunden wurde, gibt die Funktion die Prozess-ID (PID) des Prozesses zurück. Wenn die Funktion das Zeitlimit überschreitet, wird 0 zurückgegeben.

Bemerkungen

Prozesse werden alle 100 Millisekunden überprüft; sobald die Bedingung erfüllt ist, hört die Funktion auf zu warten. Mit anderen Worten, die Funktion wartet nicht, bis das Zeitlimit abgelaufen ist, sondern gibt sofort ihren Wert zurück und fährt mit der Skriptausführung fort. Während die Funktion wartet, können neue Threads via Hotkey, benutzerdefinierte Menüpunkte oder Timer gestartet werden.

ProcessWaitClose, Run, WinWait, Process-Funktionen, Win-Funktionen

Beispiele

Wartet, bis ein Notepad-Prozess erscheint. Wenn einer innerhalb von 5,5 Sekunden erscheint, wird seine Priorität auf Niedrig und die Priorität des Skripts auf Hoch gesetzt. Danach wird versucht, den Prozess innerhalb von 5 Sekunden zu beenden.

NeuePID := ProcessWait("notepad.exe", 5.5)
if not NeuePID
{
    MsgBox "Der Prozess ist nicht innerhalb von 5.5 Sekunden erschienen."
    return
}
; Andernfalls:
MsgBox "Es ist ein passender Prozess erschienen (Prozess-ID ist " NeuePID ")."
ProcessSetPriority "Low", NeuePID
ProcessSetPriority "High"  ; Das Skript selbst auf hohe Priorität setzen.
WinClose "Unbenannt - Editor"
PID := ProcessWaitClose(NeuePID, 5)
if PID ; Die PID existiert noch.
    MsgBox "Der Prozess wurde nicht innerhalb von 5 Sekunden geschlossen."