<code>
匯入要使用的namespace
using System.Windows.Interop;
using System.Threading;
if (!this.IsActive)
{
_FLASHINGTASKBAR = true;
_ISACTIVE = false;
_WINDOWHANDLE = (int)(new WindowInteropHelper(this)).Handle;
//Console.WriteLine("_WINDOWHANDLE:"+_WINDOWHANDLE);
FlashWindow((int)(new WindowInteropHelper(this)).Handle, 1);
//Console.WriteLine("thread start");
Thread td = new Thread(new ThreadStart(FlashTaskBar));
td.Start();
}
...
Thread所執行的方法
private void FlashTaskBar()
{
Console.WriteLine("FlashTaskBar");
Console.WriteLine("_WINDOWHANDLE:" + _WINDOWHANDLE);
for (int i = 0; i < 60; i++)
{
if (_ISACTIVE)
{
break;
}
else
{
System.Threading.Thread.Sleep(1000);
FlashWindow(_WINDOWHANDLE, 1);
}
}
_FLASHINGTASKBAR = false;
}
....
於判斷物件上加上Activated事件去改變_ISACTIVE 的值即可
private void Window_Activated(object sender, EventArgs e)
{
_ISACTIVE = true;
}
</code>