In normalem C # sieht es so aus, als müssten Sie alle durchlaufen:
%Vor% Das obige Beispiel schlägt absichtlich fehl, wenn das Handle nicht gefunden wird. Andernfalls könnten Sie natürlich SingleOrDefault
verwenden. Anscheinend mag es nicht, dass Sie das Handle der Prozess-ID 0
anfordern, daher die zusätzliche Bedingung.
Mit WINAPI können Sie GetProcessId
verwenden. Ich konnte es nicht auf pinvoke.net finden, aber das sollte tun:
(Signatur verwendet DWORD
, Prozess-IDs werden jedoch von int
s in der .NET-BCL dargestellt)
Es scheint ein bisschen merkwürdig, dass Sie einen Punkt haben, aber keine Prozess-ID. Prozesshandles werden durch Aufrufen von OpenProcess
erworben, was einen Prozess erfordert ID.
Es scheint keine einfache Möglichkeit zu geben, dies mit der .Net API zu tun. Die Frage ist, woher hast du diesen Griff? Wenn Sie auf dieselbe Weise auf die Prozess-ID zugreifen können, können Sie Folgendes verwenden:
Process.GetProcessById (int iD)