2

我有一个不是我的程序,它有 3 个 TEdit 框和 3 个 TButton 对象。我可以使用以下方法轻松获取按钮句柄:

IntPtr buttonhwnd = FindWindowEx(mainhwnd, IntPtr.Zero, "TButton", "Button Text");

但是我不能对编辑框做同样的事情,因为它们里面没有任何文本。因此FindWindowEx(hWnd, IntPtr.Zero, "TEdit", "")可以得到所有的。然而,它只得到它遇到的第一个,我需要最后一个。有没有办法跳过一些框或区分它们?

4

1 回答 1

3

我找到了答案:

鉴于有 3 个控件,我可以使用:

//Get first occuring Edit box
IntPtr edithWnd = FindWindowEx(mainhWnd, IntPtr.Zero, "TEdit", "");
//And the second
edithWnd = FindWindowEx(mainhWnd, edithWnd, "TEdit", "");
//And finally the one I want
edithWnd = FindWindowEx(mainhWnd, edithWnd, "TEdit", "");

虽然不是动态的,但它为我完成了工作。但是,供可能需要此功能的人将来参考:除了知道它们所在的 Z 位置之外,还有其他方法可以区分它们吗?

于 2012-09-26T14:53:41.303 回答