0

GetForegroundWindowどういうわけか、zオーダーで取得された現在のアクティブなウィンドウの下のウィンドウのハンドルを取得することは可能ですか?つまり、サイズや位置に関係なく、現在のウィンドウの下にあるウィンドウです。

4

2 に答える 2

1

このピンボーク呼び出しを試すことができます:

[DllImport("User32")] extern IntPtr GetTopWindow(IntPtr hWnd); 
[DllImport("User32")] extern IntPtr GetNextWindow(IntPtr hWnd, uint wCmd); 

これをパラメータとして使用します

uint GW_HWNDNEXT = 2; 

したがって、最初にトップウィンドウ(またはあなたのウィンドウ)を取得します。その後、GetNextWindowを呼び出し、結果ハンドルを何度も繰り返します。これで、すべてのウィンドウが表示されます。

于 2012-08-10T06:27:05.950 に答える
0

この関数を使用して、次または前のウィンドウ(z順)を取得できますGetNextWindow

編集:GetNextWindow私はちょうどのマクロであるpinvoke.netで読んだGetWindowGetWindowしたがって、直接電話する方がよいでしょう。

pinvoke.netからのコード:

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr GetWindow(IntPtr hWnd, GetWindow_Cmd uCmd);

enum GetWindow_Cmd : uint {
    GW_HWNDFIRST = 0,
    GW_HWNDLAST = 1,
    GW_HWNDNEXT = 2,
    GW_HWNDPREV = 3,
    GW_OWNER = 4,
    GW_CHILD = 5,
    GW_ENABLEDPOPUP = 6
}
于 2012-08-10T06:26:20.980 に答える