Prozess Class suchen, erkennen und killen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Prozess Class suchen, erkennen und killen

    Hallo liebe gemeinde,

    ich möchte in vb.net ein tool haben, was mir die Prozess Class ausliest, diese ist in AutoIT einfach, doch ich hatte diese gerne in visual basic, da dies meine "Mutter Sprache" ist. Doch leider ergab die suche bei Google nichts.
    Ein Class sieht so aus -> "WindowsForms10.Window.8.app.0.2bf8098_r17_ad1", das Tool soll zb nach dieser Class suchen und den Prozess, der darauf läuft beenden.
    Ich weis, wie man nach dem Prozess namen "killt" und nach dem Fenster namen, doch hätte ich gerne wie gesagt die Class, da diese eindeutig ist.


    Ich hoffen ich habe mich verständlich ausgedrückt und ihr wisst weiter =)
    Wenn ich das richtig verstanden habe, willst du eine Process-Instanz aus dem Klassennamen eines Fensters erhalten. Dafür brauchst du 2 API-Calls und die Methode Process.GetProcessById(int). Deklariere die Funktionen FindWindow(string, string) und GetWindowThreadProcessId(hwnd, out pid). FindWindow liefert dir ein HWND, welches du an die zweite Funktion weitergibst. Diese liefert dir die PID, mit der du eine Process-Instanz erstellen kannst.
    Gruß
    hal2000

    hal2000 schrieb:

    Wenn ich das richtig verstanden habe, willst du eine Process-Instanz aus dem Klassennamen eines Fensters erhalten. Dafür brauchst du 2 API-Calls und die Methode Process.GetProcessById(int). Deklariere die Funktionen FindWindow(string, string) und GetWindowThreadProcessId(hwnd, out pid). FindWindow liefert dir ein HWND, welches du an die zweite Funktion weitergibst. Diese liefert dir die PID, mit der du eine Process-Instanz erstellen kannst.


    Leider nicht das was ich suche.

    Jedes Programm (auch explorer) hat eine bestimmte CLASS, diese kann wie im ersten post sein. Diese will ich von allen laufen den Prozessen scannen, wie gesagt ist das in AutoIT einfach, doch ich würde es ebend in vb haben. Sollte das tool, eine bestimmte Class gefunden haben, soll es den dazu gehörigen Programm schließen. Die Fenster namen oder prozessnamen kann man faken, das brauch ist nicht, aber die Class nicht.

    Sedrika schrieb:

    Diese will ich von allen laufen den Prozessen scannen

    Was verstehst du unter "scannen"? Beschreibe dein Problem bitte in einer für Programmierer verständlichen Sprache. Alternative: Poste den AutoIT-Code. Die Übersetzung ist nicht wirklich schwer.

    Edit: Meinst du, dass Programme, die Fenster mit bestimmten Klassennamen besitzen, nicht gestartet werden sollen (dürfen) und somit eine aktuelle Liste der Prozesse inkl. Fensterklassen vorgehalten werden muss? Dafür wäre ein CBT-Hook die Musterlösung, erfordert aber einiges an Hintergrundwissen und eine C++-DLL. Die Nooblösung wäre ein Timer, der alle X Millisekunden die Liste aktualisiert und nach "verbotenen" Fensterklassen sucht.
    Gruß
    hal2000

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