ProcessSetPriority

Ändert die Prioritätsstufe des ersten gefundenen Prozesses.

ProcessSetPriority Stufe , PIDOderName

Parameter

Stufe

Typ: Zeichenkette

Geben Sie eines der folgenden Wörter oder Buchstaben an:

Beachten Sie, dass jeder Prozess, der nicht für eine Ausführung in Echtzeit (Realtime) ausgelegt ist, die Systemstabilität beeinträchtigen kann, wenn er auf diese Prioritätsstufe gesetzt wird.

PIDOderName

Typ: Integer oder Zeichenkette

Wenn weggelassen, wird der Prozess des Skripts selbst verwendet. Andernfalls 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.

Rückgabewert

Typ: Integer

Diese Funktion gibt die Prozess-ID (PID) des angegebenen Prozesses zurück. Wenn kein Prozess gefunden wurde oder nicht manipuliert werden kann, wird 0 zurückgegeben.

Bemerkungen

Die aktuelle Prioritätsstufe eines Prozesses kann im Windows-Task-Manager eingesehen werden.

Run, Process-Funktionen, Win-Funktionen

Beispiele

Startet Notepad, setzt seine Priorität auf Hoch und meldet seine aktuelle PID.

Run "notepad.exe", , , &NeuePID
ProcessSetPriority "High", NeuePID
MsgBox "Die neue Notepad-PID ist " NeuePID

Einen Hotkey drücken, um die Priorität des Prozesses des aktiven Fensters zu ändern.

#z:: ; WIN+Z-Hotkey
{
    aktive_pid := WinGetPID("A")
    aktiver_titel := WinGetTitle("A")
    MeineGui := Gui(, "Priorität setzen")
    MeineGui.Add("Text",, "
    (
        Drücke ESCAPE zum Abbrechen oder doppelklicke auf eine
        neue Prioritätsstufe für das folgende Fenster:
    )")
    MeineGui.Add("Text", "wp", aktiver_titel)
    LB := MeineGui.Add("ListBox", "r5 Choose1", ["Normal","High","Low","BelowNormal","AboveNormal"])
    LB.OnEvent("DoubleClick", PrioritätSetzen)
    MeineGui.Add("Button", "default", "OK").OnEvent("Click", PrioritätSetzen)
    MeineGui.OnEvent("Escape", (*) => MeineGui.Destroy())
    MeineGui.OnEvent("Close", (*) => MeineGui.Destroy())
    MeineGui.Show()

    PrioritätSetzen(*)
    {
        neue_prio := LB.Text
        MeineGui.Destroy()
        if ProcessSetPriority(neue_prio, aktive_pid)
            MsgBox "Erfolg: Die Priorität wurde auf " neue_prio " gesetzt."
        else
            MsgBox "Fehler: Die Priorität konnte nicht auf " neue_prio " gesetzt werden."
    }
}