Prüfen ob Prozess läuft

  • VB.NET

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

    Prüfen ob Prozess läuft

    Hallo Leute,
    ich wollte keinen Uraltthreat ausgraben also starte ich mal was neues ^^
    also ich habe meine ganzen anderen Probleme gelöst ;) mal ein paar Nächte drüber schlafen bringt es hin und wieder ^^
    Zu meinem neuen Problem:
    ich möchte gerne bei Button druck prüfen ob ein Prozess läuft und habe bisher diesen Ansatz:

    VB.NET-Quellcode

    1.   Private Function Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2.   Dim p() As Process = Process.GetProcessesByName("firefox")
    3.   If p() Then
    4.   MessageBox.Show(1)
    5.   Else
    6.   MessageBox.Show(0)
    7.   End If
    8.   End Function

    Das ist nur ein Beispeil, ich möchte folgendes realisieren:
    > Prüfe ob Firefox.exe auf HDD vorhanden
    bei Ja: > Prüfe ob firefox.exe aktiv bei ja/nein je weitere aktion
    bei nein: > beenden
    Ich würde fast sagen das ich auf dem richrtigen Wege bin nur ich hab noch einen Fehler.

    Mark_Emil schrieb:

    einen Fehler.

    ... ist KEINE Fehlerbeschreibung!

    Sinnvoll wäre übrigens erstmal zu prüfen ob Firefox läuft. Denn wenn es läuft muss es wohl auch irgendwo auf der Platte liegen.
    Nach firefox.exe (oder wie auch immer) auf der Platte zu suchen, halte ich für keine gute Idee. Je nach Plattengröße(n) dauert sowas ja etwas. Ich würde mal schauen ob's nicht sinnvoller ist, die Registry auszuwerten (HKLM Software etc). Das suchen dort dürfte deutlich schneller gehen, da die Schlüssel und ihre Positionen ja bekannt sind. Dann kann man auch nach ExePath schauen und auf der Platte testen ob es da wirklich liegt. Hilft natürlich nicht bei Firefox portable, oder bei der Sandbox-Lösung von Xenocode.
    :oops: der fehler kommt dann hier, habs einfach verpeilt den mit ran zu hängen
    Indexanzahl ist kleiner als die Anzahl der Dimensionen des indizierten Arrays.

    was sagt der denn genau aus?
    das mit der reg durchsuchen is ein guter ansatz ^^ ich hatte bis jetzt keine probleme mit dem durchsuchen der HDD ging alles rech flüssig aber ich guck mir das mal an danke :thumbsup:
    das mit der alternative bezog sich auf deinen ersten post mit der suche über die registry...
    und bei dem resultat ging es darum das die
    Mach statt
    If p() then
    ein
    If p.Count = 0 Then
    draus

    sache von dir immer das gleiche resultat ausgibt

    Mark_Emil schrieb:

    deinen ersten post mit der suche über die registry...

    Das schlägt allerdings fehl, wenn FF zwar läuft, aber nicht "installiert" ist.


    Und wenn nach
    dim p() As Process = GetProcessesByName("blup")
    p.count = 0 ist, dann heißt das, dass der Prozess "blup" nicht gefunden wurde. Andernfalls wäre p.count > 0. Nur diese beiden Möglichkeiten gibt es.

    Im übrigen ist das mit p.count keine "Alternative", sondern die Lösung zu deinem Fehler und überdies die korrekte Herangehensweise. Length kann man auch nehmen, aber ich nehm immer count weils zu allen anderen Listen etc passt.