2017-05-24 3 views
-4

Jede Idee, wie alle Taskleiste Artikel Details in den Fenstern erhalten .Ich für eine Meldung suchen, wenn ein Ding neuen Prozess in der Taskleiste Liste kamGet Windows-Taskleiste Artikel

+0

Was ist mit Prozessen, die nicht in der Taskleiste angezeigt werden? Abgesehen davon müssen Sie nach den Regeln dieser Seite etwas Eigenes bereitstellen (https://stackoverflow.com/help/how-to-ask). – HimBromBeere

+0

Es gibt keine einfache Möglichkeit, dies zu tun, also ist die Frage für Sie, warum Sie diese Informationen benötigen, weil Sie Ihr zugrunde liegendes Problem anders lösen müssen –

Antwort

3

Es gibt keine offizielle API direkt Taskleiste Elemente aufzuzählen oder fragen Sie nach Details zu ihnen.

Ein Taskleistenschaltfläche wird erstellt:

  • sichtbare oberste Ebene unowned Fenster oder ein sichtbares Fenster, das den erweiterten WS_EX_APPWINDOW Stil. Diese Fenster können leicht entdeckt werden, um einen EnumWindows() Rückruf verwenden, die jedes verfügbares Fenster überprüft IsWindowVisible() verwenden, GetParent()/GetWindow(GW_OWNER), GetWindowLongPtr(GWL_EXSTYLE) usw.

  • ein Fenster, das in die Taskleiste hinzugefügt wird manuell ITaskbarList::AddTab() verwenden. Diese Fenster können nicht aufgelistet werden. Die einzige Möglichkeit, die ich entdecken kann, ist das Ersetzen des Standardobjekts CLSID_TaskbarList durch eine benutzerdefinierte DLL-Implementierung, die alle Aufrufe ITaskbarList über alle Prozesse abfängt.

+0

Man kann [UI-Automatisierung] verwenden (https://msdn.microsoft .com/de/us/library/windows/desktop/ff486375 (v = vs.85) .aspx) um Taskleistenschaltflächen aufzuzählen und möglicherweise auch Ereignisse anzuhören, wenn eine Taskleistenschaltfläche hinzugefügt oder entfernt wird. – zett42