Что нового

[Элементы GUI] Необходимо узнать размеры элемента, но функция ControlGetPos не работает.

Nilson

Новичок
Сообщения
21
Репутация
0
Код:
$aPos = ControlGetPos(0x00000000001315AA, '', 1250730)

Собственно, первое это handle искомого элемента который мне показала утилита Window info,
второе пустой текст так как его там нету и ID искомого элемента. В итоге, при выводе переменной, я вижу в окне просто 0.
А хотелось бы получить размеры искомого элемента. Что я делаю не так?

Используйте для AutoIt кода тег [autoit]
autoit.gif

madmasles.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Nilson [?]
Что я делаю не так?
В таком виде handle не надо использовать, или используйте заголовок окна, или получайте сначала его handle.
 
Автор
N

Nilson

Новичок
Сообщения
21
Репутация
0
Да я уже все перепробовал. И заголовок окна и handle в разных форматах. Как выдавало 0 так и выдает. И самое обидное, что обе программы (1 родная идет с autoit и 1 сторонняя) видят этот элемент и его размеры, а я программно не могу найти.
Ладно. Я конечно сильно сомневаюсь но все же. Данная функция возвращает нам множество. Если я дам команду на вывод данного множества в таком формате MsgBox(0, "", $size) то я получу в окне все множество?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Nilson, добро пожаловать на форум.

Первый параметр ControlGetPos - это заголовок (и не только окна).
Впрочем, можно использовать и в таком виде:
Код:
ControlGetPos($hItemHandle, '', 0)

Но первый вариант предпочтительнее*, так как после перезапуска handle будет уже другой.

Далее, функция возвращает массив из 4 элементов. Т.е. $aPos[0] - это x, а $aPos[3] - ширина элемента. Т.е. MsgBox(0, "", $size) не покажет весь массив.


*Можно примерно так:
Код:
ControlGetPos("Заголовок окна или другое", '', 1409) ; здесь 1409 это именно ID элемента, а не его handle
 
Автор
N

Nilson

Новичок
Сообщения
21
Репутация
0
О, все, всем спасибо. Проблема решена. Оказывается моя ошибка была в том, что я указывал первым параметром title основного окна, а необходимый мне элемент находился в еще одном окне поменьше. Его оказалось сложно найти и я даже не подозревал о его существовании. Сейчас случайно заметил это окно пройдясь утилитой window info.
 
Верх