Prüfen ob Prozesse aus Listbox starten

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von optz.

    Prüfen ob Prozesse aus Listbox starten

    Hi Leute,

    ich möchte Prüfen ob ein Programm oder ein Ordner geöffnet wurde. Das Problem ist das ich nicht weiß wie man das macht, wenn man eine Listbox mit vielen Einträgen hat und alle prüfen will und wie das Programm auch Ordner erkennt die geöffnet werden bzw. geöffnet sind. Bis jetzt habe ich es immer so gemacht:

    VB.NET-Quellcode

    1. For Each tsk As System.Diagnostics.Process In System.Diagnostics.Process.GetProcessesByName(Name)
    2. 'mach was damit
    3. Next

    aber das geht ja leider nur mit einem Programm.

    Danke schon mal im voraus!

    MfG

    optz
    @optz: Was ist der Plan?
    Sicher kannst Du die Liste der aktuellen Prozesse einer ListBox zuweisen und diese auch abfragen.
    Nur:
    Was, wenn ein Prozess beendet wurde, dann befindet sich in der ListBox ein hohler Vogel (==> NullReferenceException),
    was, wenn ein neuer Prozess gestartet wurde, der ist dann in der ListBox nicht enthalten.
    Also:
    Was ist der Plan?
    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!
    Ein Prozess, der in der ListBox steht, ist bereits gestartet, denn die ListBox wird mit laufenden Prozessen gestartet.
    Überleg 2 Mal, bevor Du den nächsten Post schreibst.
    Was ist der Plan?
    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!

    optz schrieb:

    VB.NET-Quellcode

    1. System.Diagnostics.Process.GetProcessesByName(Name)
    liefertz Dir aber nur gestartete Prozesse.
    Hast Du iwas vergessen zu schreiben?
    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!

    optz schrieb:

    Sorry, war wohl blöd erklärt.
    Dann erklär es doch einfach so, dass wir es auch verstehen. :S
    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!
    Ich möchte in eine Listbox Prozesse und Ordner eintage. Dann soll eine schleife die Listbox auslesen und prüfen ob diese Prozesse gestartet werden. Wenn ein Prozess gestartet wird, dann soll was passieren und wenn kein definierter Prozess gestartet wird passiert gar nichts.

    Das ist der Plan den ich hatte.

    MfG
    optz
    Definiere

    optz schrieb:

    Prozesse und Ordner
    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!
    @optz
    Wie in einem anderen aktuellen Thread schon angemerkt wurde, gibt es keinerlei Ereignisse/Events, die automatisch ausgelöst werden, wenn außerhalb deines Programm irgendwer oder irgendetwas einen Prozess startet. Das bedeutet, dass du nicht abhängig von irgendeinem Ereignis dir den das Ereignis auslösenden Prozess "schnappen" und auf bestimmte Merkmale untersuchen kannst.

    Die einzige Chance, die ich da sehe, ist, dass du - z.B. per Timer gesteuert - in regelmäßigen Intervallen die Liste aktiven Prozesse ausliest und mit dem Zustand des vorherigen Durchgangs vergleichst. Ist seit dem letzten Durchgang ein neuer Prozess hinzugekommen, dann kannst du davon ausgehen, dass dieser Prozess innerhalb des zuletzt verstrichenen Timer-Intervalls gestartet worden sein müsste, und kannst dann entsprechend prüfen, ob der in deiner Liste auftaucht und ggf. darauf reagieren.

    Nachtrag: Wo du grad von Ordnern schreibst. Wenn ein neues Explorer-Fenster geöffnet wird, wirst du in der Regel keinen eigenen Prozess dafür erhalten, sondern es wird einfach ein weiteres Fenster erzeugt, dass zu dem standardmäßig einzigen ständig laufenden explorer.exe-Prozess gehört (und der auch für die Taskleiste und den Desktop verantwortlich zeichnet).
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.
    ja das es kein Event dafür gibt weiß ich. deshalb habe ich ja auch nach einer schleife gefragt die das übernehmen kann.
    Wegen den Ordnern habe ich ja ne Idee. Es gibt eine Möglichkeit alle Prozesse auf aktive Fersten zu prüfen und deren Fensternamen zu ermitteln aber ich weiß nicht ob das auch mit Ordnern geht.

    Danke schonmal für eure Antworten.

    MfG
    optz

    optz schrieb:

    Prozesse und Ordner

    Definiere

    optz schrieb:

    meine Programme
    Oder:
    Was haben Deine Programme mit ieinem Prozess zu tun?
    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!
    Ich fürchte, du musst dich erst einmal mit den Begriffen Programm, Prozess, Fenster und Ordner auseinandersetzen. Da scheint dir noch einiges unklar zu sein, worin sich das alles unterscheidet und wie (bzw. wie nicht) es voneinander abhängig ist.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    optz schrieb:

    Soll ich
    zuerst einmal beschreiben, wie das überhaupt ablaufen soll und so?
    Antwort:
    Ja.
    ----
    Mach erst mal einen Plan, da reden wir drüber. Und dann fängst Du an zu proggen.
    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!
    Ok ich werde heute Nachmittag mal den Code Posten. Bin gerade nicht zu Hause und hab hier keine möglichkeit zu Coden.

    Meine Idee hat leider nicht Funktioniert.

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