2011-10-11 133 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

焦點竊取(請參閱上文更新)?您可以通過調整註冊表並查看它是否對應用程序的閃爍有任何影響來檢查這是否是原因。 –