UOWin 1.6 - Windows утилита (безоконная, безконсольная) для сохранения в текстовый файл (и/или в буфер обмена) информации окна заданного хендлом (координаты, размеры, PID, активность, доступность, состояние окна).
СайтСкачать с iFolderПрограмме для работы нужен пакет Microsoft .Net Framework 3.5
Если он у вас еще не установлен, то скачать можно
здесьОписание
Использование: uowin.exe [-t] [-c] <хендл окна в десятичном формате> [<txt-файл для сохранения данных>]
Параметр "-t" - полезен для отладки в тестовом режиме, но не пригоден для работающего скрипта (расширенная информация в txt-файле)
Параметр "-c" - копировать данные в буфер обмена
Примеры:
uowin.exe 5534723 c:\my folder\arr.txt
uowin.exe -t 5534723 c:\my folder\arr.txt
uowin.exe -t -c 5534723 c:\my folder\arr.txt
uowin.exe -c 5534723
uowin.exe -c -t 5534723
Структура txt-файла (или буфера обмена) построчно:
1. X координата левого верхнего угла окна
2. Y координата левого верхнего угла окна
3. ширина окна
4. высота окна
5. ID (идентификатор) процесса
6. isActive - окно активно (0 = нет, 1 = да)
7. winState - окно минимизировано или невидимо = 0; окно развернуто = 1; окно максимизировано = 2
8. isMinimized - окно минимизировано (0 = нет, 1 = да)
9. isMaximized - окно максимизировано (0 = нет, 1 = да)
10. isVisible - если окно развернуто (или максимизировано), даже если закрыто другими окнами, то = 1. Если минимизировано = 0
11.isEnabled - окно доступно (0 = нет, 1 = да)
Если окно заданное хендлом не существует - в txt-файле (или в буфере) будет только одна строка с текстом "-1".
Примечание: фактически будет получена информация не окна заданного хендлом, а родительского окна, содержащего в себе указанное.
Например, текстовое поле ввода или даже кнопка рассматриваются системой как отдельные окна и имеют свои хендлы. Программа же вернёт размеры и данные окна на котором расположены эти текстовое поле и кнопка.
Пример использования в скрипте UOPilot:
move 600, 400 // перемещаем курсор мышки
set #handle windowfromcursor // сохраняем в переменную хендл окна под курсором
set workwindow #handle // устанавливаем рабочим окно с указанным хендлом
// Вариант 1 - с файлом
exec d:\uopilot\uowin.exe #handle d:\1.txt
wait 500 // ждать 500 миллисекунд
load_array %arr d:\1.txt
// теперь в массиве %arr хранится информация о координатах, размерах окна и т.д.
// Вариант 2 - с буфером обмена
exec d:\uopilot\uowin.exe -c #handle
wait 500 // ждать 500 миллисекунд
get clipboard %arr
// теперь в массиве %arr хранится информация о координатах, размерах окна и т.д.
set #a %arr[1 6] // 6-й элемент массива
msg Активность окна: #a
В файле 1.txt (или в буфере обмена) будет что-то похожее на:
-8
-8
1297
787
5524
1
2
1
0
1
1
В тестовом режиме (с параметром -t):
X: -8
Y: -8
Width: 1297
Height: 787
Process ID: 5524
isActive: 1
winState: 2
isVisible: 1
isMinimized: 0
isMaximized: 1
isEnabled: 1
Не используйте в скрипте опцию "копирование в буфер" (-c) с тестовым режимом (-t) вместе!
В этом случае элементы массива будут обрабатываться скриптов неверно:
%arr[1] = "X:"
%arr[2] = "-8"
и т.д.