2016-11-28 6 views
1

Когда я получаю IUIAutomationElement файла, который является обозревателем рабочего стола или Windows, как я могу получить полный путь к элементу? Есть ли интерфейс COM или метод? Я могу получить только имя файла, используя CurrentName.C++ Как получить полный путь к файлу на уровне IUIAutomation?

+0

Пожалуйста, прекратите задавать тот же вопрос в новом вопросе несколько раз. Это не так, как работает переполнение стека. Кроме того, почему вам нужно получить путь к файлам, выбранным во всех диалоговых окнах файлов? Какова ваша конечная цель? – andlabs

+0

Этот вопрос просто «Могу ли я получить путь к файлу на уровне IUIAutomation или не могу?». Мне просто интересно. Это не связано с предыдущим вопросом. – Empty

+0

Вы не можете получить полное имя от самого элемента, вам придется определить его, используя его родословную (родительские элементы), которые содержат путь. Используйте опцию check (https://msdn.microsoft.com/en-us/library/windows/desktop/dd318521.aspx), чтобы определить, как вы можете с ней связаться. Я думаю, что в зависимости от того, как настроен ваш проводник, это может быть совсем не возможно. –

ответ

0

Есть свойство IUIAutomationElement :: CurrentProcessId (Просто прочитайте документацию MSDN).

Остальной может быть найден с другим простым запросом на StackOverflow: C++ Windows - How to get process path from its PID

+0

Я хочу получить путь к файлу, а не процесс. Когда элемент IUIAutomationElement файла как элемент диалога открытия файла вызовет метод CurrentProcessId, он вернет идентификатор процесса процесса, создающего диалог открытия файла. – Empty

+0

Невозможно получить DLL или модуль, на котором размещен COM-объект. Просто подумай об этом? Просто наличие vtable плюс указатель на класс не дает вам возможности узнать, кто запускает код, и даже если цели в vtable находятся в DLL, хост может быть EXE или другой DLL. Дайте более точный вопрос, для чего вам нужна информация. – xMRi

 Смежные вопросы

  • Нет связанных вопросов^_^