#include <Constants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <WinAPI.au3>

Local $iArraySize = 1, $i = 0, $aWinList[$iArraySize][4] = [[0]]

$hWnd = DllCall("user32.dll", "hwnd", "FindWindow", "int", 0, "int", 0)
If Not @error Then
	$hWnd = $hWnd[0]
EndIf
While $hWnd
	$i += 1
	If $i >= $iArraySize Then
		$iArraySize = $i * 2
		ReDim $aWinList[$iArraySize][4]
	EndIf
	$aWinList[$i][0] = $hWnd ; Дескриптор
	$aWinList[$i][1] = _WinAPI_GetWindowText($hWnd) ; Заголовок
	$aWinList[$i][2] = _WinAPI_GetClassName($hWnd) ; Класс
	If BitAND(_WinAPI_GetWindowLong($hWnd, $GWL_STYLE), $WS_VISIBLE) Then
		$aWinList[$i][3] = 'Видимо'
	Else
		$aWinList[$i][3] = 'Скрыто'
	EndIf
	$hWnd = _WinAPI_GetWindow($hWnd, $GW_HWNDNEXT)
WEnd
If $i Then
	ReDim $aWinList[$i + 1][4]
	$aWinList[0][0] = $i
EndIf
; _ArrayDisplay($aWinList, 'Результат', -1, 0, '', '|', '№|Дескриптор|Заголовок|Класс|Видимость')
_ArrayDisplay($aWinList, 'Результат')