【发布时间】:2011-06-04 14:20:12
【问题描述】:
使用 pinvoke 我可以轻松找到具有特定类和名称的窗口句柄:
[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
IntPtr hWnd = FindWindow("Foo Class", "Foo Window");
如果只有 0 或 1 个匹配的窗口,上面的代码可以完美运行。但是,我正在使用的非托管应用程序跨越多个窗口。多次调用 FindWindow 每次都返回相同的窗口句柄。
我需要做什么才能获得具有特定类和名称的所有窗口。
我也将接受相同目标的替代解决方案的答案。 (我在想也许可以通过查找应用程序的进程 ID,然后获取所有顶级窗口,并过滤所需的窗口来完成。
【问题讨论】: