Потихоньку начинаю все приводить к товарному виду.
WindowStatus.Parent - готов.
WindowStatus.Find - Поиск окна по имени и классу - готов.
WindowStatus.allStatus - не допилен.
WindowStatus.Top - не допилен, работает только с потоками не принадлежащими плоту.
WindowStatus.Ready - страдает из-за WindowStatus.Top.
Предложения, что еще выдернуть по статусам окна приветствуются.В планах есть:
Поиск окна по имени и классу.
Анализ видимости окна на экране и координаты видимой точки.
windowName (<handle>) - запрашивает имя окна.
windowName (<handle>) - запрашивает имя окна.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Первый элемент массива содержит код ошибки:
0 - функция успешно вернула данные.
1 - внутренняя ошибка функции.
2 - хендл не существует.
Второй элемент содержит имя окна.
Код
set %a WindowStatus.windowName(workwindow)
log  имя окна:                %a [1 1]        %a [1 2]
 className (<handle>) - запрашивает класс имя окна.
className (<handle>) - запрашивает класс имя окна.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Первый элемент массива содержит код ошибки:
0 - функция успешно вернула данные.
1 - внутренняя ошибка функции.
2 - хендл не существует.
Второй элемент содержит имя класса окна.
Код
set %a WindowStatus.className (workwindow)
log  имя класса окна:         %a [1 1]        %a [1 2]
 pidAndTid (<handle>) - запрашивает PID и TID процесса, которому принадлежит окно.
pidAndTid (<handle>) - запрашивает PID и TID процесса, которому принадлежит окно. PID - номер процесса, TID - номер потока.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
В первый элемент массива помещается результат запроса PID'а.
Во второй элемент массива помещается результат запроса TID'a.
Возвращает результат:
0 - ошибка функции.
4 - хендл не существует.
x - все прочие значения являются корректными ID.
Код
set %a WindowStatus.pidAndTid (workwindow)
log  PID:                     %a [ 1 1 ]
log  TID:                     %a [ 1 2 ]
 windowSize (<handle>) - получение сведений о размере и расположении окна.
windowSize (<handle>) - получение сведений о размере и расположении окна. Результат функции должен принимать массив.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Первый элемент массива содержит код ошибки:
0 - функция успешно вернула данные.
1 - внутренняя ошибка функции.
2 - хендл не существует.
Код
set %a WindowStatus.windowSize (workwindow)
log  получение размера успех: %a [ 1 1 ]
log  ширина:                  %a [ 1 2 ]
log  высота:                  %a [ 1 3 ]
log  startx:                  %a [ 1 4 ]
log  startY:                  %a [ 1 5 ]
log  endX:                    %a [ 1 6 ]
log  endY:                    %a [ 1 7 ]
 minimized (<handle>) - запрашивает свернуто ли окно.
minimized (<handle>) - запрашивает свернуто ли окно.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - не минимизировано.
1 - минимизировано.
2 - хендл не существует.
Код
set #a WindowStatus.minimized (workwindow)
log  минимизировано:          #a
 maximized (<handle>) - запрашивает максимизировано ли окно (развернуто на весь экран).
maximized (<handle>) - запрашивает максимизировано ли окно (развернуто на весь экран).
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - не максимизировано.
1 - максимизировано.
2 - хендл не существует.
Код
set #a WindowStatus.maximized (workwindow)
log  максимизировано:         #a
 visible (<handle>) - запрашивает видимо ли окно.
visible (<handle>) - запрашивает видимо ли окно. Подразумевается флаг скрытого окна, а не фактическая видимость на экране.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - невидимо.
1 - видимо.
2 - хендл не существует.
Код
set #a WindowStatus.visible (workwindow)
log  видимое:                 #a
 enabled (<handle>) - запрашивает восприимчивость окна для совершения действий (клики, нажатия клавиш и т.д.).
enabled (<handle>) - запрашивает восприимчивость окна для совершения действий (клики, нажатия клавиш и т.д.).
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - блокировано.
1 - доступно.
2 - хендл не существует.
Код
set #a WindowStatus.enabled (workwindow)
log  доступно:                #a
 top (<handle>) - запрашивает является ли данное окно в фокусе (на переднем плане).
top (<handle>) - запрашивает является ли данное окно в фокусе (на переднем плане).
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - окно не на переднем плане.
1 - окно на переднем плане.
2 - хендл не существует.
Код
set #a WindowStatus.top (workwindow)
log  на переднем плане:       #a
 topmost (<handle>) - запрашивает является ли окно отображаемым поверх всех окон.
topmost (<handle>) - запрашивает является ли окно отображаемым поверх всех окон.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - не поверх всех окон.
1 - поверх всех окон.
2 - хендл не существует.
Код
set #a WindowStatus.topmost (workwindow)
log  поверх всех окон:        #a
 parentTop (<handle>) - запрашивает на переднем плане находится родительское окно или нет.
parentTop (<handle>) - запрашивает на переднем плане находится родительское окно или нет. Под родительским окном подразумевается окно верхнего уровня.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - не на переднем плане.
1 - на переднем плане.
2 - хендл не существует.
Код
set %a WindowStatus.parentTop (workwindow)
log  родительское активно:    %a[1 1]    %a[1 2]
 upper (<handle>) - запрашивает является ли окном верхнего уровня.
upper (<handle>) - запрашивает является ли окном верхнего уровня.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - верхнего уровня.
1 - дочернее.
2 - хендл не существует.
Код
set #a WindowStatus.upper (workwindow)
log  верхнего уровня (род):   #a
 ready (<handle>) - комплексный запрос информации об окне с целью понять готовность окна к работе.
ready (<handle>) - представляет собой комплексный запрос информации об окне с целью понять готовность окна к работе. Окно считается готовым к работе, если оно:не минимизировано, видимо, доступно, на переднем плане.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
0 - не минимизировано.
1 - минимизировано.
2 - хендл не существует.
Код
set #a WindowStatus.ready (workwindow)
log  готово к работе:         #a
 allStatus (<handle>) - собирает полную информацию об окне.
allStatus (<handle>) - собирает полную информацию об окне. В стадии разработки.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
Возвращает результат:
parentAndChild (<handleParent> <handleChild>) - запрашивает является ли пара окон  друг другу родительским и дочерним.
parentAndChild (<handleParent> <handleChild>) - запрашивает является ли пара окон  друг другу родительским и дочерним.
<handle> - обязательный параметр. Содержит в себе хендл окна о котором запрашивается информация. Для запроса информации о рабочем окне можно указать 'workwindow'(без кавычек).
<handleParent> - хендл родительского окна.
<handleChild>   - хендл дочернего окна.
Возвращает результат:
0 - не являются родительским и дочерним.
1 - являются родительским и дочерним.
2 - хендл не существует.
Код
set #a WindowStatus.parentAndChild (#handleParent #handleChild)
log  родительское и дочернее: #a
 find (<fullNameFlag><caseNameFlag><fullClassNameFlag><caseClassNameFlag> <windowName> <windowClassName>) - функция поиска окон по заданным имени и классу. 
find (<fullNameFlag><caseNameFlag><fullClassNameFlag><caseClassNameFlag> <windowName> <windowClassName>) - функция поиска окон по заданным имени и классу. Результат работы должен принимать массив, т.к. находятся все окна с заданными параметрами, а не только первое совпавшее.
<fullNameFlag> - флаг полного имени. В выключенном состоянии позволяет задать только часть имени. 0 - выкл, 1 - вкл.
<caseNameFlag> - флаг чувствительности к регистру букв при сравнении имени окна. 0 - выкл, 1 - вкл.
<fullClassNameFlag> - флаг полного имени 
класса. В выключенном состоянии позволяет задать только часть имени 
класса. 0 - выкл, 1 - вкл.
<caseClassNameFlag> - флаг чувствительности к регистру букв при сравнении имени 
класса окна. 0 - выкл, 1 - вкл.
<windowName> - имя окна, которое требуется найти.
<windowClassName> - имя 
класса окна, которое требуется найти.
Флаги могут задаваться как слитно, так и раздельно.
Имена окна и класса окна задаются через пробел. Если имя содержит в себе пробелы, то необходимо обособить его знаками '*' (без кавычек).
Если необходимо проигнорировать имя или класс окна, то следует задать параметр пустым с помощью символов '*', например:
Код
set %a WindowStatus.find (1111 ** TchatFrm)
set %a WindowStatus.find (1111 *Окно чата* **)
Возвращает хендлы найденных окон в элементы массива:
%arr [1 1]
%arr [1 2]
%arr [1 3]
и т.д.
Если окон не было найдено, то в:
%arr [1 1]  помещается ноль.
Код
set %a WindowStatus.find (1111 *Окно чата* TchatFrm)
log  найдено:                %a [1 1]    %a [1 2]    %a [1 3]    %a [1 4]
set %a WindowStatus.find (0110 Браузер myClass)
log  найдено:                %a [1 1]    %a [1 2]    %a [1 3]    %a [1 4]
 Глобальный скрипт по выводу информации об окне
Код
set linedelay 0
set #dev 1
if  #dev = 1
    log close
    log clear
    log open 1430 -10 500 1080
    log mode compact
    set #handleLogWindow findwindow ("Log Window")
    showwindow #handleLogWindow restore
    set #handleUoPilot findwindow ("UoPilot")
end_if
set $bmp ".bmp"
:start
//wait 2s
//pluginload pluginunload pluginreload
//pluginunload
//filedelete
//filecopy
//pluginload
set #window workwindow
set %a WindowStatus.windowName(#window)
log  имя окна:                %a [1 1]        %a [1 2]
set %a WindowStatus.className (#window)
log  имя класса окна:         %a [1 1]        %a [1 2]
set %a WindowStatus.pidAndTid (#window)
log  PID:                     %a [ 1 1 ]
log  TID:                     %a [ 1 2 ]
set %a WindowStatus.windowSize (#window)
log  получение размера успех: %a [ 1 1 ]
log  ширина:                  %a [ 1 2 ]
log  высота:                  %a [ 1 3 ]
log  startx:                  %a [ 1 4 ]
log  startY:                  %a [ 1 5 ]
log  endX:                    %a [ 1 6 ]
log  endY:                    %a [ 1 7 ]
set #a WindowStatus.minimized (#window)
log  минимизировано:          #a
set #a WindowStatus.maximized (#window)
log  максимизировано:         #a
set #a WindowStatus.visible (#window)
log  видимое:                 #a
set #a WindowStatus.enabled (#window)
log  доступно:                #a
set #a WindowStatus.top (#window)
log  на переднем плане:       #a
//set %a WindowStatus.top (#window)
//log  %a [1 1]
//log  %a [1 2]
//log  %a [1 3]
//log  %a [1 4]
//log  %a [1 5]
set #a WindowStatus.topmost (#window)
log  поверх всех окон:        #a
set %a WindowStatus.parentTop (#window)
log  родительское активно:    %a[1 1]    %a[1 2]
set #a WindowStatus.upper (#window)
log  верхнего уровня (род):   #a
set #a WindowStatus.ready (#window)
log  готово к работе:         #a
log ______________________
set #a WindowStatus.parentAndChild (198492 525830)
log  родительское и дочернее: #a
set %a WindowStatus.find (1111 *Окно чата* TchatFrm)
log  найдено:                %a [1 1]    %a [1 2]    %a [1 3]    %a [1 4]
 Сообщение отредактировал DarkMaster - 11.11.2015, 14:18