我有一个不是我的程序,有3个TEdit框和3个TButton对象。我可以使用以下方法轻松获取按钮句柄:
IntPtr buttonhwnd = FindWindowEx(mainhwnd, IntPtr.Zero, "TButton", "Button Text");
但我不能对编辑框执行相同的操作,因为它们中没有任何文本。因此FindWindowEx(hWnd, IntPtr.Zero, "TEdit", "")
可以获得所有这些。然而,它只获得它遇到的第一个,我需要最后一个。有没有办法跳过一些方框或区分它们?
答案 0 :(得分: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位置之外,还有办法区分它们吗?