KeiStory

728x90
반응형

C# 작업표시줄 깜빡이게 하기 - FlashWindowEx

 

윈도우 창에서 작업표시줄에있는 아이콘을 깜짝이게 하는 방법입니다.

아래 코드는 응용프로그램을 최소화시킨 경우 작업표시줄에서 깜빡이도록 합니다.

using System.Runtime.InteropServices;

namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public const int FLASHW_STOP = 0;
        public const int FLASHW_ALL = 3;

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

        [DllImport("user32.dll")]
        static extern bool FlashWindowEx(ref FLASHWINFO pwfi);

        public Form1()
        {
            InitializeComponent();
        }


        protected override void OnActivated(EventArgs e)
        {
            base.OnActivated(e);
            Flash(false);
        }

        protected override void OnSizeChanged(EventArgs e)
        {
            base.OnSizeChanged(e);

            if (this.WindowState == FormWindowState.Minimized)
            {
                Flash(true);
            }
        }

        private void Flash(bool flashed)
        {
            FLASHWINFO fi = new FLASHWINFO();
            fi.cbSize = Marshal.SizeOf(typeof(FLASHWINFO));
            fi.hwnd = this.Handle;
            fi.dwFlags = flashed ? FLASHW_ALL : FLASHW_STOP;
            fi.uCount = 10;
            fi.dwTimeout = 500;

            FlashWindowEx(ref fi);
        }
    }
}

 

결과 ( 최소화가 된경우)

 

깜빡임을 통해 아직 작업 처리가 덜 되어있다는 알림을 지속적으로 줄수 있습니다.

또한 다른 알림용도로도 사용할수 있습니다.

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band