如何告诉我的应用程序窗口是前台窗口

时间:2009-10-02 07:38:43

标签: c# .net windows

我有以下问题:我希望能够判断我的应用程序窗口是否是Windows中的前台窗口。我在Windows XP上使用C#,。Net Framework 3.5。

我实际上可以想到两种方法来完成我的目标

  1. 使用pinvoke,GetForeGroundWindow并将返回的hWnd与我的表单的hWnd进行比较
  2. 检查Form.ActiveFormnull还是对象参考
  3. 方法1似乎没问题,但除非必须,否则我宁愿不使用pinvoke。我对方法2并不完全确定,虽然它似乎工作正常。

    我应该使用哪种方法,还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

看来ActiveForm是特定于应用程序的。

如果您想知道表单是否/何时是整个操作系统的活动表单,您将无法使用API​​和进行比较。

[System.Runtime.InteropServices.DllImport( "user32.dll" )]    
public static extern IntPtr GetForegroundWindow();