- Offizieller Beitrag
Das Zugreifen auf Elemente in der Taskbar ist nicht so simpel, wie man denken mag. Ich dachte: Handle der Shell_TrayWnd abfragen - EnumChildWindows bringt die Subfenster - fertig.
Das ist aber nur die halbe Wahrheit, denn wenn man nach der ChildEnumertion anschliessend das Parent abfragt, ist dies nur z.T. das Shell_TrayWnd. Teilweise sind die enthaltenen Fenster untereinander verbunden. Mit dem folgenden Skript bekommt man die tatsächliche Zuordnung:
Python
#include <WinAPI.au3>
#include <WinAPISys.au3>
Local $hTrayWnd = WinGetHandle('[CLASS:Shell_TrayWnd]')
Local $aChildren = _WinAPI_EnumChildWindows($hTrayWnd, False)
Local $iInstance = 1, $hParent, $sOutput = StringFormat('\n! %s\t[CLASS:Shell_TrayWnd] --> EnumChildWindows:\n\n', $hTrayWnd)
If IsArray($aChildren) Then
For $i = 1 To $aChildren[0][0]
If $aChildren[$i-1][1] = $aChildren[$i][1] Then
$iInstance += 1
Else
$iInstance = 1
EndIf
$hParent = _WinAPI_GetParent($aChildren[$i][0])
$sOutput &= StringFormat('> %s\t[CLASS:%s; INSTANCE:%s]\n- \t\tPARENT:\t%s [CLASS:%s]\n\n', $aChildren[$i][0], _
$aChildren[$i][1], $iInstance, $hParent, _WinAPI_GetClassName($hParent))
Next
ConsoleWrite($sOutput)
EndIf
Alles anzeigen