Ich verwende C# System.Diagnostic.Process
Objekt.
Eine seiner Eigenschaften ist Id
.
Die Id
dies erzeugt ist nicht das gleiche wie die PID
, in Windows Task Manager
gezeigt.
Warum ist das?System.Diaganostics.Process.Id ist nicht die gleiche Prozess-ID, die im Task-Manager angezeigt wird. Warum?
Sie sehen, sobald dieser Prozess gestartet wird.
Es führt zwei andere nicht verwaltete Prozesse aus, für die ich keine expliziten IDs für Objektreferenzreferenzen erhalten kann.
Ich muss alle Prozesse durchsuchen, um sie nach Prozessname über System.Diagnostics.Process.GetProcesses()
zu finden.
Ich versuche eine zuverlässige Möglichkeit zu finden, diesen Prozess und alle damit verbundenen Prozesse von PID
, die in Task Manager
zeigt.
Gibt es einen besseren Weg?
Ich kann nicht einfach alle Prozesse mit den zugehörigen Prozessnamen beenden, weil das andere Instanzen der Prozesse, die nichts mit meinem Programm zu tun haben, töten kann.
Wenn Sie den Prozess mit System.Diagnostics.Process starten, dann rufen .Refresh() vor der ID-Überprüfung. Die ID wird vom Betriebssystem beim Start des Prozesses zugewiesen, nicht wenn das Process-Objekt instanziiert wird. –