Windows何时闪烁窗口?

时间:2011-10-11 09:04:52

标签: winapi

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

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

2 个答案:

答案 0 :(得分:4)

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

  

通常,会闪烁一个窗口以通知用户该窗口   需要注意,但它目前没有键盘   对焦。

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

  

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

答案 1 :(得分:1)

当需要输入焦点时,窗口会闪烁,无法自动获取。请参阅SetForegroundWindow() documentation中描述的要求。