Findwindow (Lua)
Содержание
Описание
findwindow - поиск хендла окна по его заголовку или PID.
Поиск производится среди окон верхнего уровня, т.е. функция не ведет поиск в дочерних окнах, таких как кнопка, поле ввода и т.д..
Для получения хендла дочернего окна используйте функцию Getwindow (Lua).
Подробнее про устройство системы окон Windows вы можете прочитать в Оконная система Windows.
Синтаксис
Привязка к окну: нет.
Работа со свернутым окном: да.
Имя окна заключается в кавычки.
findwindow (<заголовок окна | PID>)
<заголовок окна> - полное название окна либо его часть.
<PID> - номер идентификатора процесса.
Указывается только один из параметров: либо заголовок, либо PID, но не оба сразу.
Порядок поиска следующий:
- 1. ищем указанную строку в качестве точного названия окон
- 2. в качестве класса окон
- 3. в начале названия окон
- 4. в середине названий окон
- 5. в качестве 'pid' окна
h = findwindow ("Lineage II")
При этом:
h [1][1] - это будет хендл последнего активного окна
h [2][1] - предпоследнего
h [3][1] - и т. д.
Количество найденных окон можно узнать с помощью: #h.
Если окно не найдено возвращает nil.
Примеры
--lua
local handle = findwindow ("Lineage")
if handle then -- если окно найдено
workwindow (handle[1][1]) -- сделать его рабочим окном
end
-- UOPilot привяжется к последнему активному окну Lineage.
--lua
local h = findwindow ("Блокнот")
if h then -- если окно или несколько окон найдено
for i = 1, #h do
log (h[i][1]) -- показать в логе хендлы всех найденных окон
end
end
--lua
-- Нажать 1 во всех окнах Lineage2
local h = findwindow ("Lineage2") -- найти все окна с именем Lineage2
if h then -- если найдено
log ("Найдено окон: " .. #h)
for i = 1, #h do -- цикл
workwindow (h [i][1]) -- сделать окно рабочим
log ("Текущее рабочее окно: " .. workwindow())
send (1) -- нажать 1
end
end
Смотрите также
Getwindow (Lua)
Windowfromcursor (Lua)
Windowfrompoint (Lua)