Überprüfen ob neues Fenster gestartet wurde



  • Hallo mal wieder:

    Wie kann ich bitte zur Laufzeit herausfinden ob ein neues Fenster gestartet wurde und wo muss ich den Code in meinem Programm einbauen dass er permanent läuft?

    Für Hilfe bin ich bankbar 😉



  • Also, feststellen ob das Window offen ist kannst du mit FindWindow. Und damit der Code permanent aufgerufen wird musst du dir einen Timer bauen !

    Hier ein Tutorial zu Timern :

    http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htm

    Klick einfach auf Tag 4

    Gruß
    :: NoName ::



  • Gibt doch sicher auch elegantere Methoden oder?

    Ich dachte da an eine Message die Windows sendet wenn es einen neuen Process startet.

    Und was den Timer angeht, damit wird mein Programm doch während der Suche mehr oder minder blockiert oder nicht? Das ist natürlich nicht das Gelbe von Ei.



  • Millenniumcrusher schrieb:

    Gibt doch sicher auch elegantere Methoden oder?
    Ich dachte da an eine Message die Windows sendet wenn es einen neuen Process startet.

    du kannst z.b. einen neuen thread starten, der die fensterliste einmal pro sekunde (Sleep(1000)) absucht. dann wird deine anwendung nicht behindert.

    btw: mit EnumWindows(), FindWindow(), WH_SHELL hook usw. bekommst du aber nur fensterchen mit. es gibt aber auch prozesse ohne fenster, die würden sich dem entziehen.

    100%-iges erkennen von process startups geht nur mit einem kernel modul aber man könnte auch 'CreateProcess' hooken. such mal im internet nach 'detours'



  • @ Net & Millenniumcrusher

    Da verwechselt ihr was, ein Timer blockiert die Anwendung nicht, nur Sleeps blockieren die Anwendung !

    Gruß
    :: NoName ::


Anmelden zum Antworten