gpt4 book ai didi

c# - 最小化时窗口应用程序在任务栏上闪烁橙色

转载 作者:IT王子 更新时间:2023-10-29 03:58:36 33 4
gpt4 key购买 nike

我有一个窗口应用程序。当我最小化任务栏上的窗口应用程序以处理另一个应用程序时。我们有一种工具可以将消息从一个窗口应用程序发送到另一个窗口应用程序。

所以我的第一个 win 应用程序被最小化,现在我打开我的另一个 win 应用程序,然后向第一个应用程序发送消息,但是第一个应用程序在任务栏上。所以我想要这样的功能,比如当任何消息捕获我的第一个应用程序时,它就会像 Skype 或任何 Messenger 一样闪烁。

我试过 User32.dllFlashWindowEx 方法,但没有成功。我已经尝试使用“持续闪烁直到窗口出现在前台”选项。但没有运气。

请帮我举个例子解决这个问题。

最佳答案

我按如下所示进行操作,确保按所示添加所需的引用

using System.Runtime.InteropServices;
using Microsoft.Win32;

// To support flashing.
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool FlashWindowEx(ref FLASHWINFO pwfi);

//Flash both the window caption and taskbar button.
//This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
public const UInt32 FLASHW_ALL = 3;

// Flash continuously until the window comes to the foreground.
public const UInt32 FLASHW_TIMERNOFG = 12;

[StructLayout(LayoutKind.Sequential)]
public struct FLASHWINFO
{
public UInt32 cbSize;
public IntPtr hwnd;
public UInt32 dwFlags;
public UInt32 uCount;
public UInt32 dwTimeout;
}

// Do the flashing - this does not involve a raincoat.
public static bool FlashWindowEx(Form form)
{
IntPtr hWnd = form.Handle;
FLASHWINFO fInfo = new FLASHWINFO();

fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo));
fInfo.hwnd = hWnd;
fInfo.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG;
fInfo.uCount = UInt32.MaxValue;
fInfo.dwTimeout = 0;

return FlashWindowEx(ref fInfo);
}

这应该包含您需要的一切。

希望对您有所帮助。

关于c# - 最小化时窗口应用程序在任务栏上闪烁橙色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11309827/

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