Rubrik: System/Windows · Prozesse/Tasks | VB-Versionen: VB.NET | 08.03.07 |
Liste aller Prozesse ermitteln (.NET) Dieses Beispiel zeigt, wie man eine Liste aller Prozesse und deren Infos wie bspw. Dateiname, Prozess-ID usw. ermittelt. | ||
Autor: Dieter Otter | Bewertung: | Views: 26.983 |
www.tools4vb.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Eine Liste aller laufender Prozesse lässt sich wie folgt ermitteln und bspw. in einem ListView anzeigen.
Platzieren Sie auf die Form ein ListView-Control und einen CommandButton (Button1) und fügen folgenden Code in den Codeteil der Form ein:
Imports System.Diagnostics ...
Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load With ListView1 ' ListView-Control "einstellen" .View = View.Details .Sorting = SortOrder.Ascending .FullRowSelect = True ' Spalten erstellen .Columns.Add("Prozess", 100, HorizontalAlignment.Left) .Columns.Add("Dateiname", 250, HorizontalAlignment.Left) .Columns.Add("pid", 50, HorizontalAlignment.Right) End With End Sub
' Liste aller Prozesse ermitteln Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim oItem As ListViewItem With ListView1 ' ListView-Inhalt löschen .Items.Clear() ' alle Prozesse durchlaufen For Each oProcess As Process In Process.GetProcesses ' Prozess-Infos ermitteln und im ListView anzeigen oItem = .Items.Add(oProcess.ProcessName) Try oItem.SubItems.Add(oProcess.MainModule.FileName) Catch oItem.SubItems.Add("") End Try oItem.SubItems.Add(oProcess.Id.ToString) Next End With End Sub
Erweiterung:
Über einen weiteren Button soll der User die Möglichkeit haben, den aktuell markierten Prozess zu beenden:
' Prozess beenden Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click With ListView1 If .SelectedItems.Count > 0 Then If MsgBox("Aktuellen Prozess wirklich beenden?", _ MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then ' Prozess-Objekt anhand Prozess-ID erstellen Dim oProccess As Process = Process.GetProcessById( _ Val(.SelectedItems(0).SubItems(2).Text)) Try ' Prozess beenden/zerstören oProccess.Kill() Catch ex As Exception ' Fehlermeldung... MsgBox("Fehler beim Beenden des Prozess." & vbCrLf & ex.Message.ToString) End Try End If End If End With End Sub