首页 > 解决方案 > 2 具有相同名称和类的 Windows

问题描述

我有 2 个具有相同类和名称的窗口。这是 SPY++ 中 2 个窗口的图片

2个窗户

我想找到底部窗口(001C1E1A)但是每当我试图用这条线找到他时:

hwndChild2 = FindWindowEx((IntPtr)hwndChild, IntPtr.Zero, "msctls_progress32", null);

我得到了顶部窗口(00790B50)。

所以我的问题是:如何001C1E1A从图片列表中找到底部窗口()?

标签: c#.netwinapi

解决方案


根据文档,第一个参数FindWindowEx窗口,第二个参数是childAfter,您之前找到的窗口的句柄。

所以这些调用应该会给你结果:

// find first window
hwndChild = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "msctls_progress32", null);
// find second window
hwndChild2 = FindWindowEx(IntPtr.Zero, (IntPtr)hwndChild, "msctls_progress32", null);

推荐阅读