isaketranjan Ответов: 1

Можно ли получить идентификатор дескриптора окна из пути к каталогу ?


Мне нужно как-то найти дескриптор окна папки (например,
Цитата:
hwnd=0x002C0F1A 64bit class="DirectUIHWND" style=0x56000000 ex=0x0
) внутри любой папки, например папки Загрузки,
Пожалуйста, помогите мне, так как я застрял

Что я уже пробовал:

Cannot find the same using uiautomationclient dll.

Richard MacCutchan

Дескрипторы Windows нигде не хранятся в файлах, они динамически создаются для запущенных приложений.

isaketranjan

Да, это то, что я пытаюсь найти во время выполнения, пытался найти то же самое с помощью библиотеки DLL uiautomationclient (от Microsoft), но это также не удалось, каким-то образом я нашел все элементы внутри каталога и попытался найти их дескриптор, используя имя или полный путь к каталогу (если это возможно)

Richard MacCutchan

Пожалуйста, прочтите мой комментарий еще раз.

isaketranjan

Может быть, я не смог ясно сформулировать свой вопрос, точно так же, как мы находим элементы управления любого окна с помощью библиотеки DLL uiautomationclient, например
Automationelement, которые.Корневой элемент.Метод Findfirst(TreeScope.Дети, новое свойство Condition(AutomationElement.Свойства nameProperty, "Этот компьютер"));

, точно так же, как я хочу найти файлы/папки, которые могут присутствовать в любом месте

Richard MacCutchan

Что вы имеете в виду под этим "найдите также файлы/папки"?

Ваш первоначальный вопрос заключается в том, чтобы найти дескриптор Windows, который не существует. Теперь вы спрашиваете о поиске файлов или папок. Пожалуйста, отредактируйте свой вопрос и объясните, какую именно информацию вы пытаетесь найти.

1 Ответов

Рейтинг:
0

OriginalGriff

Нет.
Дескрипторы Windows-это ограниченный ресурс, который динамически выделяется по требованию при создании окна во время выполнения и повторно используется при закрытии окна. Кроме того, приложение не имеет "одного дескриптора windows", его обычно будет много - по крайней мере, один для каждой формы и для каждого элемента управления.

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


isaketranjan

Может быть, я не смог ясно сформулировать свой вопрос, точно так же, как мы находим элементы управления любого окна с помощью библиотеки DLL uiautomationclient, например
Automationelement, которые.Корневой элемент.Метод Findfirst(TreeScope.Дети, новое свойство Condition(AutomationElement.Свойства nameProperty, "Этот компьютер"));

, точно так же, как я хочу найти файлы/папки, которые могут присутствовать в любом месте