C++ Multi Monitor - 查找所有可见/打开的窗口

标签 c++ winapi windows-7

我试图找到所有打开的任何类型的窗口(并且有一个任务栏“按钮”)。

我可以毫无问题地找到列表进程/hWnd,然后在其中循环,但是我如何确定进程/hwnd 是否打开了一个窗口? (即使最小化)。

我已经尝试对窗口参数进行不同的组合(例如 WS_POPUP 等),但是我能找到的所有参数(或参数组合)都不会给我所有打开的窗口而不会出现某种误报。作为误报的一个例子,它为我提供了两个用于 google talk 的“窗口”(即使其中一个是打开的)。另一个误报是将开始菜单视为一个打开的窗口。

有什么想法吗?解决方案?我已经为此工作了一段时间,它让我有点发疯。

注意:我正在为 Windows 7 执行此操作(此时)。我不确定在 XP 和 7 之间执行此操作的方式是否有任何区别,但我认为这可能是相关的。

最佳答案

可以使用 EnumWindows() 吗?这只会找到顶层窗口。

EnumWindows (MSDN)

关于C++ Multi Monitor - 查找所有可见/打开的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2860345/

相关文章:

c++ - 从 Visual Studio 运行 MySQL Connector/C++ 时崩溃

c++ - 将 %APPDATA% 与 CreateProcessW 一起使用

winapi - 这是使用 Windows API "safe"的 Rust 代码吗?

windows - 如何将 Windows Search 与 Emacs 连接起来

windows - 作为低完整性进程运行时如何获取 %temp%\Low 的位置

android - 无法链接 libSTLport_shared,即使它存在...?

c++ - 使用 CGAL::Constrained_Delaunay_triangulation_2 三角化多边形

c++ - "Typedef declaration"和 "Class declaration"之间的区别

winapi - 如何从 Windows 7 中的驱动器号中获取可移动设备的物理驱动器号?

java - 如何在 Java 中制作 Windows 7 工具提示