1

なぜこれがうまくいかないのか、誰にも分かりますか?

IntPtr hWnd = FindWindow(null, "Calculator");
IntPtr hWnd2 = GetActiveWindow();

if(hWnd == hWnd2)
{
     MessageBox.Show("Same");
}

呼び出しは次のとおりです。

[DllImport("user32.dll")]
static extern IntPtr GetActiveWindow();

[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 
4

2 に答える 2

1

結局、「GetActiveWindow」は子領域を返しているようです。

GetForegroundWindow() はウィンドウ ハンドルを返しています。

于 2009-09-19T03:53:16.290 に答える
1

GetActiveWindow() がハンドルをアプリケーション/コマンド ウィンドウに返す可能性は非常に高いです。

于 2009-09-19T03:52:14.077 に答える