_WinAPI_GetWindowLong
Возвращает информацию об указанном окне
#include <WinAPI.au3>
_WinAPI_GetWindowLong($hWnd, $iIndex)
Параметры
$hWnd | Дескриптор окна |
$iIndex |
Specifies the zero based offset to the value to be retrieved. Valid values are in the range zero through the number of bytes of extra window memory, minus four; for example, if you specified 12 or more bytes of extra memory, a value of 8 would be an index to the third 32 bit integer. Чтобы получить любое другое значение укажите одно из следующих значений: $GWL_EXSTYLE - Возвращает расширенный стиль окна $GWL_STYLE - Возвращает стиль окна $GWL_WNDPROC - Возвращает адрес оконной процедуры $GWL_HINSTANCE - Возвращает дескриптор экземпляра приложения $GWL_HWNDPARENT - Возвращает дескриптор родительского окна, если таковое имеется $GWL_ID - Возвращает идентификатор окна $GWL_USERDATA - Возвращает 32-битное значение, связанное с окном |
Возвращаемое значение
Успех: | Возвращает запрашиваемое значение |
Ошибка: | Устанавливает @error |
Примечания
Для выше указанных констант необходим Constants.au3См. также
_WinAPI_SetWindowLongСм. также
Искать GetWindowLongPtr в библиотеке MSDNПример
#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, 'Результат')