Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WinAPISys.au3>
- ; BEISPIEL:
- #include <WinAPI.au3>
- #include <WindowsConstants.au3>
- ; Hwnd für ToolbarWindow32, Instance 1 (neben der Uhr)
- ;~ Local $hToolbar = _GetHwndFromTrayWnd('ToolbarWindow32')
- ; Hwnd für Tasklist (neben Start-Button)
- Local $hTaskList = _GetHwndFromTrayWnd('MSTaskListWClass')
- ;~ TEST:
- ;~ ConsoleWrite(WinSetState($hTaskList, '', @SW_HIDE) & @CRLF)
- ;~ Sleep(2000)
- ;~ ConsoleWrite(WinSetState($hTaskList, '', @SW_SHOW) & @CRLF)
- ;~ REDRAW:
- _WinAPI_RedrawWindow($hTaskList, 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
- ; #FUNCTION# ====================================================================================================================
- ; Name ..........: _GetHwndFromTrayWnd
- ; Description ...: Handle eines Fensters des Shell_TrayWnd mit Classname (optional Instanz) abfragen oder alle Handle mit Classname und Instanz ausgeben
- ; Parameters ....: $_sClass Das Handle für den übergebenen Classname wird ausgegeben (Default = 'all', alle Handle mit Classname und Instanz)
- ; ...............: $_iInstance [optional] Die gesuchte Instanz des Klassenfensters (Default = 1)
- ; Return values .: Erfolg Handle des gesuchten Klassenfensters oder Liste mit allen Handles + Classnames + Instance
- ; ...............: Fehler 0xDEAD - Classname und/oder Instance nicht zutreffend
- ; Author ........: BugFix
- ; ===============================================================================================================================
- Func _GetHwndFromTrayWnd($_sClass='all', $_iInstance=1)
- If $_sClass = 'all' Then
- Local $hTrayWnd = WinGetHandle('[CLASS:Shell_TrayWnd]')
- Local $aChildren = _WinAPI_EnumChildWindows($hTrayWnd, False)
- Local $iInstance = 1, $sAllOutput = ''
- 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
- $sAllOutput &= StringFormat('%s\t[CLASS:%s; INSTANCE:%s]\n', $aChildren[$i][0], $aChildren[$i][1], $iInstance)
- Next
- Return $sAllOutput
- EndIf
- Else
- Local $hWnd = ControlGetHandle('[Class:Shell_TrayWnd]', '', StringFormat('[Class:%s; Instance:%s]', $_sClass, $_iInstance))
- If IsHWnd($hWnd) Then Return $hWnd
- EndIf
- Return 0xDEAD
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement