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 に答える