mrak1990
Цитата:
для чего два дополнительных элемента?
|
Когда объявляем массив, нужно добавлять ещё один элемент, который будет содержать общее число элементов, в данном случае, нужно два (т.е тоже число элемнтов как и у массива возвращённого от
WinList, плюс один элемент (WinList[0][0] содержит общее число элементов этого массива)), а дополнительный для того чтобы поместить в него ещё один заголовок окна (рабочего стола)...
Можно конечно и обойтиться +2, вот так:
Код:

Func _ExplWinGetList()
Local $WinList = WinList("classname=CabinetWClass")
If IsArray($WinList) Then
Local $WinListArr[UBound($WinList)+1]
For $iW = 1 To $WinList[0][0]
$WinListArr[$iW] = $WinList[$iW][0]
Next
$WinListArr[0] = $WinList[0][0]+1
$WinListArr[$WinListArr[0]] = "classname=Progman"
Return $WinListArr
Else
Return ""
EndIf
EndFunc
В этом случае
Ubound($WinList) ровняется
WinList[0][0]+1 (нуливой элемент содержащий общее количество элементов, и все остальные элементы), поэтому мы добавляем только +1.