我有以下问题:我希望能够判断我的应用程序窗口是否是Windows中的前台窗口。我在Windows XP上使用C#,。Net Framework 3.5。
我实际上可以想到两种方法来完成我的目标
GetForeGroundWindow
并将返回的hWnd与我的表单的hWnd进行比较Form.ActiveForm
是null
还是对象参考方法1似乎没问题,但除非必须,否则我宁愿不使用pinvoke。我对方法2并不完全确定,虽然它似乎工作正常。
我应该使用哪种方法,还有其他方法吗?
答案 0 :(得分:3)
看来ActiveForm是特定于应用程序的。
如果您想知道表单是否/何时是整个操作系统的活动表单,您将无法使用API和进行比较。
[System.Runtime.InteropServices.DllImport( "user32.dll" )]
public static extern IntPtr GetForegroundWindow();