我正在研究和更改某些应用程序,我注意到在某些特定情况下,应用程序开始在任务栏中闪烁。我检查了应用程序并发现了对FlashWindowEx(单个)的调用,但代码永远不会到达那里。换句话说,我非常自信Windows本身会导致闪烁,我想知道它什么时候发生。
一个示例答案(除了指示我关于该问题的文章之外)就像是“如果您的应用程序失去焦点但仍然被激活,Windows将自动刷新您的任务栏项目”(在这种情况下不是这样) ,但这是一个例子: - ))。
答案 0 :(得分:4)
闪烁的直接原因是FlashWindow
API调用,MSDN specifies:
通常,会闪烁一个窗口以通知用户该窗口 需要注意,但它目前没有键盘 对焦。
闪烁的典型原因是focus/foreground stealing:
...此值是Windows XP允许的时间(以毫秒为单位) 应用程序从前台应用程序窃取焦点。至 将200000转换为秒,将其除以1000(200秒)。你看 表中的值ForegroundFlashCount两次,因为设置它 为0会导致任务栏按钮闪烁,直到您单击它为止;除此以外, 任务栏按钮闪烁您设置的次数 ForegroundFlashCount。
答案 1 :(得分:1)
当需要输入焦点时,窗口会闪烁,无法自动获取。请参阅SetForegroundWindow() documentation中描述的要求。