Feststellen ob bestimmtes Programm aktiv ist



  • Hallo.

    Ich möchte gern feststellen ob ein bestimmtest Programm aktiv ist und deren Titel auslesen. Im speziellen möchte ich gern wissen ob ein Video abgespielt wird und dessen Titel ermitteln. Gibt es dafür eine gute Lösung?



  • Hallo,

    schau dir mal die Funktionen FindWindow() und GetWindowText() an.
    Im Internet gibt es hierzu einige Beispiele.

    HWND WINAPI FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);
    int WINAPI GetWindowText(HWND hWnd,LPTSTR lpString,int nMaxCount);



  • Es ist ein bißchen komplizierter.
    Ich gehe davon aus, daß du nicht den EXAKTEN Text des Windows kennst.
    Du mußt aber zumindest einen Teil kennen, z. B. mit welchem Programm das Video abgespielt wird, z. B. VCL Media Player. Der Windows Media Player z. B. liefert im Fenstertitel nicht das abgespielte Video.
    Da du nicht den exakten Fenstertitel kennst, funktioniert es nicht mit FindWindow oder FindWindowEx, sondern du mußt über alle Fenster suchen mit EnumWindows und einer CallBack-Funktion, die den Fenstertitel auswertet und im Titel mit dem gesuchten Teilstring vergleicht. Viel Spaß !



  • W. Posur schrieb:

    Da du nicht den exakten Fenstertitel kennst, funktioniert es nicht mit FindWindow oder FindWindowEx, sondern du mußt über alle Fenster suchen mit EnumWindows und einer CallBack-Funktion, die den Fenstertitel auswertet und im Titel mit dem gesuchten Teilstring vergleicht. Viel Spaß !

    1. Er muss den Titel nicht wissen, lpClassName anzugeben reicht.
    2. Ist EnumWindows auch nicht sooo das Problem.



  • unlogged schrieb:

    1. Er muss den Titel nicht wissen, lpClassName anzugeben reicht.

    Könnte dann funktionieren, wenn der Klassenname des Hauptfensters der Video-Anwengung einzigartig ist.


Anmelden zum Antworten