gpt4 book ai didi

c# - 我怎么知道我的应用程序窗口是前景窗口

转载 作者:可可西里 更新时间:2023-11-01 11:40:52 25 4
gpt4 key购买 nike

我有以下问题:我想知道我的应用程序窗口是否是 Windows 中的前景窗口。我在 Windows XP 上使用 C#、.Net Framework 3.5。

我其实可以想到两种方法来做我想做的事

  1. 使用 pinvoke,GetForeGroundWindow 并将返回的 hWnd 与我的表单的 hWnd 进行比较
  2. 检查 Form.ActiveForm 是否为 null 或对象引用

方法 1 似乎没问题,但除非万不得已,否则我宁愿不使用 pinvoke。我不太确定方法 2,尽管它似乎工作正常。

应该用什么方法,还有其他方法吗?

最佳答案

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

如果您想知道您的表单是否/何时是整个操作系统的事件表单,您只能使用 API 和 hWnd 比较。

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

关于c# - 我怎么知道我的应用程序窗口是前景窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1508179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com