Что нового

Как закрыть элемент?

Radik

Новичок
Сообщения
71
Репутация
1
Добрый день!
В программе открывается элемент, Inspector определяет его как UIA_PaneControlType(0xC371), есть ClassName (напр. WindowsForm10) и все.
А в верхнем правом углу элемента есть кнопки "Свенуть", "Закрыть". Так вот эти кнопки ни Inspector, ни AutoIt Window Info не видят.
Есть какая-то возможность кликать на эти кнопки, кроме MouseClick?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Если есть ClassName, то должен быть и Handle. Если есть Handle, значит Au3Info должен определять этот элемент. Следовательно, можно пробовать либо WinClose по дескриптору элемента, либо ControlClick по координатам кнопки "Закрыть".
 
Автор
R

Radik

Новичок
Сообщения
71
Репутация
1
InnI сказал(а):
Если есть ClassName, то должен быть и Handle. Если есть Handle, значит Au3Info должен определять этот элемент. Следовательно, можно пробовать либо WinClose по дескриптору элемента, либо ControlClick по координатам кнопки "Закрыть".
Пробовал, закрывает саму программу. Похоже ClassName у меня нет(
 
Автор
R

Radik

Новичок
Сообщения
71
Репутация
1

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Radik
Пробовали посылать элементу WM_SYSCOMMAND + SC_CLOSE?
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Radik сказал(а):

Не забудьте подставить свои значения, но в принципе отличий от WinClose нет. Вы пробовали WinClose посылать элементу или окну?
Код:
#include <SendMessage.au3>
#include <WindowsConstants.au3>
#include <MenuConstants.au3>

Local $hWnd = ControlGetHandle("[ACTIVE]", "", "[CLASS:DirectUIHWND; INSTANCE:3]")
_SendMessage($hWnd, $WM_SYSCOMMAND, $SC_CLOSE)
;WinClose($hWnd)
 
Верх