Die Community zu .NET und Classic VB.
Menü

VB.NET-Tipp 0047: Informationen über Prozesse ermitteln

 von 

Beschreibung

Dieses Beispiel zeigt, wie leicht sich mit .NET-Bordmitteln die auf einem System laufenden Prozesse auflisten und manipulieren lassen (Beenden, Hauptfenster schließen).

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Framework-Version(en):

.NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5

.NET-Version(en):

Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008

Download:

Download des Beispielprojektes [4,54 KB]

' Dieser Quellcode stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!

' Projektversion:   Visual Studio 2002/2003
' Option Strict:    Aus
' Option Explicit:  An
'
' Referenzen: 
'  - System
'  - System.Data
'  - System.Drawing
'  - System.Windows.Forms
'  - System.XML
'
' Imports: 
'  - Microsoft.VisualBasic
'  - System
'  - System.Collections
'  - System.Data
'  - System.Drawing
'  - System.Diagnostics
'  - System.Windows.Forms
'

' ##############################################################################
' ################################ frmInfo.vb ##################################
' ##############################################################################
Imports System.Diagnostics

Public Class frmInfo
    Inherits System.Windows.Forms.Form


    Private Sub frmInfo_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        Dim prclist As Process() = Process.GetProcesses
        Dim p As Process

        For Each p In prclist
            lstProcesses.Items.Add(p.ProcessName)
        Next
        lstProcesses.Sorted = True
        lstProcesses.SelectedIndex = 0
    End Sub

    Private Sub lstProcesses_SelectedIndexChanged( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles lstProcesses.SelectedIndexChanged

        Dim p As Process = _
            Process.GetProcessesByName(lstProcesses.SelectedItem)(0)

        Try
            grpInfo.Text = p.ProcessName
            lblPriority.Text = p.PriorityClass.ToString
            lblID.Text = p.Id
            lblFile.Text = p.MainModule.FileName
            lblStarttime.Text = p.StartTime().ToShortTimeString
            lblThreadcount.Text = p.Threads.Count()
        Catch ex As Exception
        End Try
    End Sub

    Private Sub cmdKill_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles cmdKill.Click

        Dim p As Process = _
            Process.GetProcessesByName(lstProcesses.SelectedItem)(0)
        p.Kill()
    End Sub

    Private Sub cmdClose_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles cmdClose.Click

        Dim p As Process = _
            Process.GetProcessesByName(lstProcesses.SelectedItem)(0)
        p.CloseMainWindow()
    End Sub
End Class

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 1 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Karran am 28.07.2005 um 12:47

Der Taskmanager zeigt zu den Prozessen auch noch die Benutzernamen an (NT-Systeme). Lässt sich das auch per Programm herausfinden? Bzw. wie lässt es sich herausfinden?