Как я могу получить HWND из списка внешнего приложения?В Windows Api с использованием c ++ - PullRequest
4 голосов
/ 31 декабря 2010

Поэтому я пытаюсь создать приложение для получения содержимого моих списков просмотра проводника и получения текста элемента и т. Д. Из него, но вот проблемы ...

Если я проверяю папку проводника Windows (используя spy ++)со списком, только для целей тестирования, я буду использовать случайную папку.

Это показывает, что заголовок окна "FolderView" с классом "SysListView32", а окно верхнего уровня, в которое вложен этот просмотр списка, называется "ссылка", это также название папки проводника Windows, где всефайлы:

Так что я делаю ..

HWND hWndLV = FindWindow(NULL, TEXT("reference")); // first i get hwnd of the main window, this is where listview window is also nested according to spy++, thats why i do this first.

HWND child = FindWindowEx(hWndLV, NULL,NULL,TEXT("FolderView")); // trying to get hwnd of the listview here but it fails, same happens if i also put the class name along as 

HWND child = FindWindowEx(hWndLV, NULL,TEXT("SysListView32"),TEXT("FolderView"));

Я использую bool test = IsWindow(child); для проверки на сбой, также VS отладчик показывает 0x0000000000 каждый раз, так что я уверенЯ хорошо читаю результаты.

Так что я застрял на этой, вероятно, простой вещи для большинства людей: (* ​​1014 *

ps Я на Vista64 (если это все равно имеет значение)

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

Я также пытался идти шаг за шагом, определяя hwnd каждого родителя, затем я использую для него findwindowex, но, о боже, я дошел до того, что есть 5 вложенных окон с одинаковыми именами, и только одно из них содержит мой списокtview, так мило, а?

1 Ответ

3 голосов
/ 31 декабря 2010

Если вы получили дескриптор главного окна (например, FindWindow), вы можете перечислить его дочерние окна, используя EnumChildWindows .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...