Audio Sessions auflisten unter Windows 7



  • Hallo,

    da es mein erster Post ist hoffe ich nicht all zu hart ran genommen zu werde wenn ich hier falsch sein sollte 😉

    Zu meinem Problem:
    Ich bin aktuell dabei mir eine liste mit den Audio Sessions (Windows 7) ausgeben zu lassen (IAudioSessionManager2->IAudioSessionEnumerator->IAudioSessionControl).
    Es funktioniert alles wunderbar bis auf eine "Kleinigkeit" und zwar die Namen.
    Laut MSDN liefert mir die Funktion IAudioSessionControl::GetDisplayName nur einen Namen wenn dieser von der Anwendung gesetzt wurde.
    Wie komme ich jedoch an den Namen wenn eine Anwendung das nicht gemacht hat?

    Ich habe nun oft gelesen das es dann über den Fenstertitel gelöst wird.
    Meine aktueller versuch ist es mir über IAudioSessionControl2::GetProcessId die PID zu holen und weiter über EnumWindows alle Top-Level Handles mit der gegebenen PID zu listen um an den Titel des Fensters zu kommen. Dabei gibt es jedoch das Problem das ich nicht weiß welches von den Handles das eigentliche "Start" Top-Level Window ist. Dadurch bekomme ich z.B. beim Windows Media Player nicht den Titel "Windows Media Player" sondern "ms_sqlce_se_notify_wndproc" da es das erste gefundene Top-Level Window mit der PID ist.
    Ist der Ansatz eventuell falsch oder gibt es eine Möglichkeit die liste zu filtern um an das eigentliche Main Window zu kommen?

    Ich hoffe das mir hier jemand helfen kann.
    Gruß und frohe Weihnachten
    Markus



  • Wahrscheinlich helfen dir die Funktionen GetWindow und IsWindowVisible weiter.



  • Hallo,

    IsWindowVisible hilft mir dabei leider nicht da sich viele Player im Tray verstecken und somit das Fenster nicht sichtbar ist.

    Wie mir GetWindow nun genau dabei helfen soll verstehe ich nicht ganz.
    Die Top-Level Fenster habe ich alle in einer liste mit der gesuchten PID.
    Der gesuchte Titel ist auch immer mit bei den Handle's dabei.
    Aber wie filtere ich das Handle aus der liste welches das eig. "Start" Top-Level Fenster ist?

    Gruß
    Markus



  • Hallo,

    Ich habe genau das gleiche Problem, hatt denn Wirklich keiner eine Idee? Google bringt Diesbezüglich leider auch keinen Erfolg.

    Ich hoffe jemand kann helfen.

    Gruß Matze 🙂


Anmelden zum Antworten