exxxcitation1
@exxxcitation1
Ваше Эникейшество

Как получить дескриптор кнопки «Подробнее» в неразвёрнутом диспетчере задач?

Не могу найти способ отыскать дескриптор кнопки "Подробнее" в неразвёрнутом диспетчере задач.

С помощью ControlGetHandle через AutoIT могу получить дескриптор какого-либо элемента окна, но как в этом фрейме произвести поиск кнопки с возратом дескриптора этой кнопки, - это вопрос. Поиск вкладки воспроизводится через _GUICtrlTab_FindTab с указанием имени вкладки, а с этой штукой, естественно, так не работает.

5e57c9f3573b5448383707.png
  • Вопрос задан
  • 645 просмотров
Решения вопроса 2
mindtester
@mindtester Куратор тега Windows
http://iczin.su/hexagram_48
как уже показал в каментах - это не окно. кроме того что уже перечислил, еще к примеру Qt приложения, тоже не используют хендлы. а именно Qt мне однажды надо было автоматизировать извне.

варианты:
- по координатам
- грабить текущее изображение и распознавать надписи, для принятия дальнейшего решения

ps мне пришлось использовать и то и другое )). трудно, криво, не все цели были достигнуты ))
pps поправка - для простейших случаев, на самом деле просто, даже очень просто. но у меня был очень разнообразный текст в одних тех же контролах. там были объективные трудности ))
Ответ написан
Комментировать
exxxcitation1
@exxxcitation1 Автор вопроса
Ваше Эникейшество
#

Если интересно, то разобрался с данной проблемой с помощью данного кода. Помогла библиотека для нестандартных элементов GUI, - UIAutomate.au3

#RequireAdmin

#include <UIAutomate.au3>

Run("taskmgr.exe")
$hWd = WinWaitActive("[CLASS:TaskManagerWindow]")
$oParent = _UIA_GetElementFromHandle($hWd)  #создаёт элемент на основе дескриптора окна
$oButton = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "CBExpandoButtonImage", "AutomationId") #получает элемент с указанием его параметров
_UIA_ElementDoDefaultAction($oButton) #выполняет стандартное действие для найденного элемента
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Насколько я помню, диспетчер задач - это UWP приложение, элементы внутри него не являются win32 объектами и, соответственно, не имеют handle. Могу ошибаться.
WinSpy++, как было замечено, должен показать, что я прав (или нет).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы