Winform任务栏闪烁

 [DllImport("user32.dll")]
        public static extern bool FlashWindow(IntPtr hWnd, bool bInvert);

调用

FlashWindow(this.Handle, true)// true为闪烁

窗体处于活动是调用 

   if (Form.ActiveForm != this)
                {
                   

          FlashWindow(this.Handle, true)// true为闪烁

                }

 

另外的线程调用时

 

    if (Form.ActiveForm != this)
                {
                    InvokeProxyMethod.ProxyMethod(this, this, "CallFlashWindow", null);
                }

 

using System;
using System.Reflection;
using System.Windows.Forms;

namespace Utility
{
delegate object CallInvokeProxyMethod(Control invokeControl, object invokeObject, string method, object[] parameters);
public static class InvokeProxyMethod
{
public static object ProxyMethod(Control invokeControl, object invokeObject, string method, object[] parameters)
{
if (invokeControl.InvokeRequired)
{
CallInvokeProxyMethod d = ProxyMethod;
return invokeControl.Invoke(d, new object[] { invokeControl, invokeObject, method, parameters });
}
else
{
Type t = invokeObject.GetType();

MethodInfo mi = t.GetMethod(method);//获取指定方法
return mi.Invoke(invokeObject, parameters);//调用实例方法

}
}
}
}

 

posted on 2012-02-23 15:35  sajiao  阅读(1438)  评论(0编辑  收藏  举报

导航

街边网