停止任务栏闪烁

时间:2008-08-27 03:38:11

标签: c# winforms taskbar

我知道我可以以编程方式让某个特定窗口的任务栏项目在某些内容发生变化时开始闪烁,但是有什么办法可以阻止它在一段时间后以编程方式闪烁或者至少是键盘短缺我可以给我的用户以某种方式停止闪烁?

3 个答案:

答案 0 :(得分:5)

控制闪烁的FlashWindowEx函数需要一个FLASHWINFO结构,它有一个uCount字段来控制它闪烁的次数。此外,dwFlags字段的可能值是FLASHW_STOP,以使闪烁停止。

编辑:忘记是一个C#标记的问题......所以P/Invoke goodness found here

答案 1 :(得分:2)

您可以考虑使用NotifyIcon,而不是闪烁任务栏。这将让你在系统托盘上放一些东西(其他许多人认为是邪恶的,因为这样做的应用程序激增)。然后你可以用实际描​​述变化本身的任何变化弹出气球提示。

使用: (1)将NotifyIcon拖到您的表单上或在您的应用程序中创建NotifyIcon notify = new NotifyIcon(); (2)将图标属性设置为所需图像 (3)使用Visible属性控制是否在系统托盘上可见 (4)调用ShowBalloonText显示弹出文本(限制为64个字符)

无论哪种方式,你都应该为程序添加一个选项,允许最终用户根据他们对这一切的感受打开/关闭此功能。我个人喜欢通知图标,因为气球文本可以说“服务器已关闭”

答案 2 :(得分:1)

@thomas - 令人惊讶的是微软自己的Windows Vista User Experience Guidelines同意你的意见......

  

当有一个背景窗口闪烁时,它的任务栏按钮比让它自动到达顶部并窃取输入焦点更好,闪烁的任务栏按钮仍然非常具有侵入性。当任务栏按钮闪烁时,用户很难集中注意力,因此您应该假设用户会立即停止他们正在做的事情以使闪烁停止。因此,保留任务栏仅在需要立即关注的情况下闪烁。

当然谁知道谁真正遵循这些指导方针......或者谁甚至阅读它们。 :)