Получить список открытых окон приложений на C++ (Windows)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Получить список открытых окон приложений на C++ (Windows)

Сообщение Anonymous »


Я хочу создать программу на C++ для вывода списка всех открытых в данный момент окон (например, браузера, проводника, Discord) и их положения/размеров. До сих пор мне удавалось составить список всех окон с помощью EnumWindows, но он включает в себя множество безымянных окон и таких вещей, как «Диспетчер программ», «Настройки» (которые у меня не открыты) и NVIDIA GeForce Overlay.

Как отфильтровать окна, которых нет в меню Alt+Tab или на панели задач?

Мой текущий код:
#include #include #pragma comment(lib, "User32.lib") BOOL IsAltTabWindow(HWND hwnd) { HWND hwndWalk = GetAncestor(hwnd, GA_ROOTOWNER); HWND hwndTry; while ((hwndTry = GetLastActivePopup(hwndWalk)) != hwndTry) { если (IsWindowVisible(hwndTry)) перерыв; hwndWalk = hwndTry; } LONG_PTR расширенный стиль = GetWindowLongPtr(hwnd, GWL_EXSTYLE); return (hwndWalk == hwnd) && ((extendedStyle & WS_EX_APPWINDOW) != 0 || (extendedStyle & WS_EX_TOOLWINDOW) == 0); } BOOL CALLBACK WindowCallback(HWND hwnd, LPARAM lParam) { константный DWORD TITLE_SIZE = 1024; TCHAR windowTitle[TITLE_SIZE]; GetWindowText(hwnd, windowTitle, TITLE_SIZE); if (IsAltTabWindow(hwnd) && IsWindowVisible(hwnd)) std::cout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»