2011-10-11 109 views
1

我正在处理和更改某些应用程序,并且我注意到在某些特定情况下,应用程序在任务栏中开始闪烁。我检查了应用程序,发现了一个调用FlashWindowEx(一个),但代码永远不会到达那里。换句话说,我非常有信心Windows本身导致闪烁,我想知道它是什么时候发生的。Windows何时闪烁窗口?

一个示例答案(除了将我引导到关于该问题的文章之外)就像“如果您的应用程序失去了焦点但仍然被激活,Windows将自动闪烁您的任务栏项目”(这不是真的情况,但它是一个例子:-))。

回答

4

的直接原因闪烁是FlashWindow API调用,MSDN specifies

通常,窗口闪烁来通知窗口 需要注意的用户,但目前,它没有键盘 焦点。

闪烁的典型原因是focus/foreground stealing

...此值以毫秒为单位的Windows XP允许 应用程序从前台应用程序窃取的焦点之前。到 将200000转换为秒,将其除以1000(200秒)。您在表格中看到 ForegroundFlashCount的值为两次,因为将其设置为 为0会导致任务栏按钮闪烁,直到您单击它为止;否则, 任务栏按钮将闪烁您在 ForegroundFlashCount中设置的次数。

+0

如果FlashWindow没有从我的代码中调用,Windows何时自动闪烁窗口? –

+0

焦点窃取(请参阅上文更新)?您可以通过调整注册表并查看它是否对应用程序的闪烁有任何影响来检查这是否是原因。 –