Findwindow (Lua): различия между версиями
Tatikoma (обсуждение | вклад) (Новая страница: «== Описание == '''findwindow''' - поиск хендла окна по его заголовку или PID. <br>Поиск производится...») |
Tatikoma (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
'''findwindow''' - поиск хендла окна по его заголовку или PID. | '''findwindow''' - поиск хендла окна по его заголовку или PID. | ||
− | + | <br>Поиск производится среди окон верхнего уровня, т.е. функция не ведет поиск в дочерних окнах, таких как кнопка, поле ввода и т.д.. | |
− | + | <br>Для получения хендла дочернего окна используйте функцию [[Getwindow (Lua)]]. | |
− | + | <br>Подробнее про устройство системы окон Windows вы можете прочитать в [[Оконная система Windows]]. | |
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: нет. | Привязка к окну: нет. | ||
− | + | <br>Работа со свернутым окном: да. | |
− | + | <br>Имя окна заключается в кавычки. | |
− | findwindow ( | + | findwindow (<заголовок окна | PID>) |
− | ''' | + | '''<заголовок окна>''' - полное название окна либо его часть. |
− | + | <br>'''<PID>''' - номер идентификатора процесса. | |
− | + | <br>Указывается только один из параметров: либо заголовок, либо PID, но не оба сразу. | |
− | + | <br>Порядок поиска следующий: | |
:1. ищем указанную строку в качестве точного названия окон | :1. ищем указанную строку в качестве точного названия окон | ||
:2. в качестве класса окон | :2. в качестве класса окон | ||
Строка 22: | Строка 22: | ||
h = findwindow ("Lineage II") | h = findwindow ("Lineage II") | ||
При этом: | При этом: | ||
− | + | <br>h [1][1] - это будет хендл последнего активного окна | |
− | + | <br>h [2][1] - предпоследнего | |
− | + | <br>h [3][1] - и т. д. | |
− | + | <br>Количество найденных окон можно узнать с помощью: #h. | |
− | + | <br>Если окно не найдено возвращает nil. | |
== Примеры == | == Примеры == | ||
Строка 59: | Строка 59: | ||
[[Getwindow (Lua)]] | [[Getwindow (Lua)]] | ||
− | + | <br>[[Windowfromcursor (Lua)]] | |
− | + | <br>[[Windowfrompoint (Lua)]] |
Текущая версия на 10:35, 28 августа 2019
Содержание
Описание
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)