c# – 有没有办法使控制台窗口在任务栏中以编程方式闪烁

前端之家收集整理的这篇文章主要介绍了c# – 有没有办法使控制台窗口在任务栏中以编程方式闪烁前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
基本上我做了控制台应用程序执行一些需要几分钟的任务.我想让它在任务栏闪烁,让我知道什么时候完成它的事情.

解决方法

使用 answer that @Zack postedanother one to find the handle of a console app我想出了这个,它的作品很棒.
class Program
{
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool FlashWindowEx(ref FLASHWINFO pwfi);

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

    public const UInt32 FLASHW_ALL = 3;

    static void Main(string[] args)
    {
        Console.WriteLine("Flashing NOW");
        FlashWindow(Process.GetCurrentProcess().MainWindowHandle);
        Console.WriteLine("Press any key to continue");
        Console.ReadKey();
    }

    private static void FlashWindow(IntPtr hWnd)
    {
        FLASHWINFO fInfo = new FLASHWINFO();

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

        FlashWindowEx(ref fInfo);
    }
}

猜你在找的C#相关文章