Prüfen ob Prozessliste bestimmte Strings enthält

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Coder9292.

    Prüfen ob Prozessliste bestimmte Strings enthält

    Hallo liebe Community,

    ich bin derzeit etwas ratlos und benötige eure Hilfe.
    Ich möchte prüfen ob die Liste aller derzeit aktiven Prozesse einen bestimmten String enthält.

    Mein derzeitiger Code: (dieser Prüft nur ob ein Prozess mit dem Namen läuft)

    VB.NET-Quellcode

    1. Imports System.Diagnostics

    VB.NET-Quellcode

    1. Dim pc As System.Diagnostics.Process

    VB.NET-Quellcode

    1. For Each pc In System.Diagnostics.Process.GetProcesses()
    2. lbProzesse.Items.Add(pc.ProcessName)
    3. Next
    4. If lbProzesse.Items.Contains("explorer") Then
    5. MsgBox("Prozess wurde gefunden")
    6. End If


    Wie kann ich nun nach bestimmten Strings in der Prozessliste suchen?

    Grüße
    Coder9292
    ~Programmieren Sie immer so, als wäre der Typ, der den Code pflegen muss, ein gewaltbereiter Psychopath, der weiß, wo Sie wohnen. ~

    Grüße
    Coder9292

    VB.NET-Quellcode

    1. For Each pc In System.Diagnostics.Process.GetProcesses()
    2. if pc.ProcessName = "explorer" Then MessageBox.Show(pc.ProcessName)
    3. Next​
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    @Coder9292 Was geht an Deinem Programm nicht?
    Was sind Deine Kriterien?

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Der Code, wie oben von mir gepostet, funktioniert einwandfrei aber erfüllt nicht das was ich möchte.
    Ich möchte prüfen ob die Prozessliste bestimmte Wörter/Strings enthält.
    Hier mal ein Beispiel:

    Gehen wir davon aus, dass die Prozesse: firefox, firemanager und fireupdater laufen und vom Programm eingelesen wurden.
    Nun möchte ich die Prozessliste nach allen Prozessen, die das Wort "fire" enthalten durchsuchen.
    Das Programm soll mir dann mitteilen ob ein Prozess der das Wort "fire" enthält läuft.
    Ist es nun verständlich was ich meine? :huh:
    ~Programmieren Sie immer so, als wäre der Typ, der den Code pflegen muss, ein gewaltbereiter Psychopath, der weiß, wo Sie wohnen. ~

    Grüße
    Coder9292
    @Coder9292 Dann klickere alle Items einzeln durch:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. For Each pc In System.Diagnostics.Process.GetProcesses()
    3. lbProzesse.Items.Add(pc.ProcessName)
    4. Next
    5. End Sub
    6. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    7. For Each item In lbProzesse.Items
    8. If item.ToString.Contains("fire") Then MessageBox.Show(item.ToString)
    9. Next
    10. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank @RodFromGermany genau das habe ich gesucht :)

    Ich habe noch eine Frage: Ist es möglich, dass das Programm mir alle Prozesse mit dem String anzeigt, egal ob diese den String in Klein- oder Großbuchstaben enthalten. Am besten, ohne das ich den String in allen möglich Variationen hinterlegen muss.
    Sprich (Fire, FIre, FIRe, FIRE etc) möchte ich vermeiden.
    ~Programmieren Sie immer so, als wäre der Typ, der den Code pflegen muss, ein gewaltbereiter Psychopath, der weiß, wo Sie wohnen. ~

    Grüße
    Coder9292