我试图找到所有打开的任何类型的窗口(并且有一个任务栏“按钮”)。
我可以毫无问题地找到列表进程/hWnd,然后在其中循环,但是我如何确定进程/hwnd 是否打开了一个窗口? (即使最小化)。
我已经尝试对窗口参数进行不同的组合(例如 WS_POPUP 等),但是我能找到的所有参数(或参数组合)都不会给我所有打开的窗口而不会出现某种误报。作为误报的一个例子,它为我提供了两个用于 google talk 的“窗口”(即使其中一个是打开的)。另一个误报是将开始菜单视为一个打开的窗口。
有什么想法吗?解决方案?我已经为此工作了一段时间,它让我有点发疯。
注意:我正在为 Windows 7 执行此操作(此时)。我不确定在 XP 和 7 之间执行此操作的方式是否有任何区别,但我认为这可能是相关的。
最佳答案
可以使用 EnumWindows() 吗?这只会找到顶层窗口。
关于C++ Multi Monitor - 查找所有可见/打开的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2860345/