Bestimmen des Prozessbesitzes in C#
Das Ermitteln des Eigentümers eines Prozesses ist eine wesentliche Aufgabe bei der Verwaltung von Systemressourcen. In diesem Zusammenhang suchen Sie nach einer Möglichkeit, den Besitzer eines Prozesses namens „MyApp.exe“ zu identifizieren, selbst nachdem eine Liste von Prozessen abgerufen wurde.
Die Process-Klasse stellt zwar grundlegende Prozessinformationen bereit, ihr fehlt jedoch die Fähigkeit um den Besitz zu bestimmen. Um dieser Herausforderung zu begegnen, kann Windows Management Instrumentation (WMI) eingesetzt werden. Durch Hinzufügen eines Verweises auf System.Management.dll können Sie den einem Prozess zugeordneten Benutzer ermitteln.
Methode 1: Nach Prozess-ID
public string GetProcessOwner(int processId) { string query = "Select * From Win32_Process Where ProcessID = " + processId; ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); ManagementObjectCollection processList = searcher.Get(); foreach (ManagementObject obj in processList) { string[] argList = new string[] { string.Empty, string.Empty }; int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList)); if (returnVal == 0) { // return DOMAIN\user return argList[1] + "\" + argList[0]; } } return "NO OWNER"; }
Methode 2: Nach Prozessname
public string GetProcessOwner(string processName) { string query = "Select * from Win32_Process Where Name = \"" + processName + "\""; ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); ManagementObjectCollection processList = searcher.Get(); foreach (ManagementObject obj in processList) { string[] argList = new string[] { string.Empty, string.Empty }; int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList)); if (returnVal == 0) { // return DOMAIN\user string owner = argList[1] + "\" + argList[0]; return owner; } } return "NO OWNER"; }
Mithilfe dieser WMI-basierten Methoden können Sie den Eigentümer effektiv ermitteln eines Prozesses anhand seiner Prozess-ID oder seines Namens. Diese Informationen können für die Analyse von Systemprozessen und die entsprechende Anpassung Ihrer Anwendungen von unschätzbarem Wert sein.
Das obige ist der detaillierte Inhalt vonWie kann ich den Eigentümer eines C#-Prozesses anhand seiner ID oder seines Namens ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!