Process-Funktionen

Funktionen zum Abrufen von Informationen über ein Prozess oder zum Ausführen verschiedener Operationen an einem Prozess. Klicken Sie auf einen Funktionsnamen, um mehr zu erfahren.

Funktion Beschreibung
ProcessClose Erzwingt die Schließung des ersten gefundenen Prozesses.
ProcessExist Prüft, ob ein bestimmter Prozess existiert.
ProcessGetName Gibt den Namen eines bestimmten Prozesses zurück.
ProcessGetParent Gibt die Prozess-ID (PID) des Prozesses zurück, der einen bestimmten Prozess erstellt hat.
ProcessGetPath Gibt den Pfad eines bestimmten Prozesses zurück.
ProcessSetPriority Ändert die Prioritätsstufe des ersten gefundenen Prozesses.
ProcessWait Wartet, bis ein bestimmter Prozess existiert.
ProcessWaitClose Wartet, bis alle gefundenen Prozesse geschlossen sind.

Bemerkungen

Prozessliste: Obwohl es keine ProcessList-Funktion gibt, zeigen Beispiel #1 und Beispiel #2, wie eine Liste von Prozessen via DllCall oder COM abgerufen werden kann.

Run, WinClose, WinKill, WinWait, WinWaitClose, WinExist, Win-Funktionen

Beispiele

Zeigt eine Liste von allen laufenden Prozessen an, die via DllCall und EnumProcesses abgerufen wurde.

MeineGui := Gui()
LV := MeineGui.Add("ListView", "w1300 r25", ["#", "PID", "Name", "Pfad"])
for Index, Proz in ProzessListeAbrufen()
    LV.Add("", Index, Proz.PID, Proz.Name, Proz.Pfad)
LV.ModifyCol()
MeineGui.Title := LV.GetCount() " Prozesse"
MeineGui.Show()

ProzessListeAbrufen(MaxProzesse := 1024) {
    Arr := []  ; Array zum Speichern der Prozessinformationen
    DllCall("Psapi.dll\EnumProcesses"
        , "Ptr", Puf := Buffer(MaxProzesse * 4)  ; Puffer zum Speichern aller PIDs
        , "UInt", Puf.Size
        , "UIntP", &ByteAnzahl := 0)  ; Anzahl der von DllCall zurückgegebenen Bytes
    Loop (ByteAnzahl // 4) {
        PID := NumGet(Puf, (A_Index - 1) * 4, "UInt")
        try Arr.Push({
            Name: ProcessGetName(PID),
            Pfad: ProcessGetPath(PID),
            PID: PID
        })
    }
    return Arr
}

Zeigt eine Liste von allen laufenden Prozessen an, die via COM und Win32_Process abgerufen wurde.

MeineGui := Gui(, "Prozessliste")
LV := MeineGui.Add("ListView", "x2 y0 w400 h500", ["Prozessname", "Befehlszeile"])
for Prozess in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
    LV.Add("", Prozess.Name, Prozess.CommandLine)
MeineGui.Show()