gpt4 book ai didi

c# - 如何确定我的应用程序是否处于事件状态(有焦点)

转载 作者:可可西里 更新时间:2023-11-01 08:20:07 28 4
gpt4 key购买 nike

有没有办法判断我的应用程序是否处于事件状态,即它的任何窗口是否具有 .IsActive=true?

我正在编写 Messenger 应用程序,并希望它在处于非事件状态和收到新消息时在任务栏中闪烁。

最佳答案

使用 P/Invoke 和循环

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

private static bool IsActive(Window wnd)
{
// workaround for minimization bug
// Managed .IsActive may return wrong value
if (wnd == null) return false;
return GetForegroundWindow() == new WindowInteropHelper(wnd).Handle;
}

public static bool IsApplicationActive()
{
foreach (var wnd in Application.Current.Windows.OfType<Window>())
if (IsActive(wnd)) return true;
return false;
}

关于c# - 如何确定我的应用程序是否处于事件状态(有焦点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049989/

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