Aktualisiert: November 2007
Erstellt ein Array neuer Process-Komponenten und ordnet diese allen Prozessressourcen auf dem lokalen Computer zu, die den angegebenen Prozessnamen gemeinsam verwenden.
Namespace:
System.Diagnostics
Assembly:
System (in System.dll)
Ein Codebeispiel steht für diese Sprache noch nicht zur Verfügung.
public static Process[] GetProcessesByName(
String processName
)
| Ausnahme | Bedingung |
|---|
| InvalidOperationException | Beim Zugriff auf die Leistungsindikator-APIs zum Abrufen der Prozessinformationen sind Probleme aufgetreten. Diese Ausnahme tritt nur bei Windows NT, Windows 2000 und Windows XP auf. |
Mit dieser Methode können Sie ein Array neuer Process-Komponenten erstellen und diese allen Prozessressourcen zuordnen, die dieselbe ausführbare Datei auf dem lokalen Computer ausführen. Die Prozessressourcen müssen bereits auf dem lokalen Computer vorhanden sein, da GetProcessesByName keine Systemressourcen erstellt, sondern diese Process-Komponenten zuordnet, die durch die Anwendung generiert sind. Ein processName kann für eine ausführbare Datei angegeben werden, die gegenwärtig nicht auf dem lokalen Computer ausgeführt wird, sodass das von der Methode zurückgegebene Array leer sein kann.
Der Prozessname ist ein angezeigter Name für den Prozess, z. B. Outlook, der nicht die Erweiterung .exe oder den Pfad enthält. GetProcessesByName ist nützlich, um alle Prozesse, die derselben ausführbaren Datei zugeordnet sind, abzurufen und zu ändern. So können Sie z. B. den Namen einer ausführbaren Datei als processName-Parameter übergeben, um alle laufenden Instanzen dieser ausführbaren Datei zu beenden.
Obwohl eine Id eines Prozesses für eine einzelne Prozessressource im System eindeutig ist, können mehrere Prozesse auf dem lokalen Computer die durch den processName-Parameter bezeichnete Anwendung ausführen. Daher gibt GetProcessById höchstens einen Prozess zurück, während GetProcessesByName ein Array mit allen zugeordneten Prozessen zurückgibt. Wenn Sie den Prozess unter Verwendung von Standard-API-Aufrufen ändern müssen, können Sie jeden dieser Prozesse nacheinander nach dem Bezeichner abfragen. Sie können auf Prozessressourcen nicht über den Prozessnamen allein zugreifen. Sobald Sie jedoch ein Array von Process-Komponenten abgerufen haben, die den Prozessressourcen zugeordnet sind, können Sie Systemressourcen starten, beenden und anderweitig verändern.
Im folgenden Beispiel werden diese Informationen abgerufen: Informationen über den aktuellen Prozess sowie über alle auf dem lokalen Computer ausgeführten Instanzen von Editor, über alle auf einem bestimmten Computer ausgeführten Instanzen von Editor (mithilfe des Computeralias und einer IP-Adresse), über alle auf dem lokalen und einem Remotecomputer ausgeführten Prozesse und über einen bestimmten Prozess auf dem lokalen Computer oder auf einem Remotecomputer (mithilfe der Prozess-ID).
Imports System
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
_
'/ <summary>
'/ Shell for the sample.
'/ </summary>
Class MyProcess
Sub BindToRunningProcesses()
' Get the current process.
Dim currentProcess As Process = Process.GetCurrentProcess()
' Get all instances of Notepad running on the local
' computer.
Dim localByName As Process() = Process.GetProcessesByName("notepad")
' Get all instances of Notepad running on the specifiec
' computer.
' 1. Using the computer alias (do not precede with "\\").
Dim remoteByName As Process() = Process.GetProcessesByName("notepad", "myComputer")
' 2. Using an IP address to specify the machineName parameter.
Dim ipByName As Process() = Process.GetProcessesByName("notepad", "169.0.0.0")
' Get all processes running on the local computer.
Dim localAll As Process() = Process.GetProcesses()
' Get all processes running on the remote computer.
Dim remoteAll As Process() = Process.GetProcesses("myComputer")
' Get a process on the local computer, using the process id.
Dim localById As Process = Process.GetProcessById(1234)
' Get a process on a remote computer, using the process id.
Dim remoteById As Process = Process.GetProcessById(2345, "myComputer")
End Sub 'BindToRunningProcesses
Shared Sub Main()
Dim myProcess As New MyProcess()
myProcess.BindToRunningProcesses()
End Sub 'Main
End Class 'MyProcess
End Namespace 'MyProcessSample
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
.NET Framework
Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0
Referenz