2011-10-11 4 views
1

私はいくつかのアプリケーションを開発していますが、いくつかの特定のシナリオでは、アプリケーションがタスクバーで点滅を開始することに気付きました。私はアプリケーションをチェックし、FlashWindowEx(単一のもの)の呼び出しを見つけましたが、コードは決してそこに到達しません。言い換えれば、Windows自体が点滅を引き起こすと確信しています。いつ起こるのでしょうか?Windowsはいつウィンドウを点滅させますか?

答えの例(問題の記事を私に紹介する以外)は、「アプリケーションがフォーカスを失ってもまだアクティブになっていると、タスクバーの項目が自動的に点滅します」というようなものですケースですが、それは一例です:-))。点滅するための

答えて

4

即時理由はFlashWindow API呼び出し、MSDN specifiesさ:

通常、ウィンドウはウィンドウ は注意が必要ですが、それは現在キーボード フォーカスを持っていないことをユーザーに知らせるためにフラッシュされます。

点滅の典型的な理由はfocus/foreground stealingです:Windows XPは、フォアグラウンドアプリケーションからフォーカスを盗むために 適用を可能にする前に、

が...。この値はミリ秒単位の時間です。 に200000を秒に変換するには、1000(200秒)で割ります。 を0に設定すると、タスクバーのボタンがクリックされるまで点滅するため、表の 値ForegroundFlashCountが2回表示されます。そうでない場合は、 タスクバーのボタンが、 ForegroundFlashCountに設定した回数点滅します。

+0

FlashWindowが自分のコードから呼び出されていない場合、WindowsはいつWindowsを独自に点滅させますか? –

+0

フォーカスを盗む(上記の更新を参照)?レジストリを調整し、アプリの点滅に何らかの影響があるかどうかを確認することで、これが理由であるかどうかを確認できます。 –

1

入力フォーカスが必要なときにウィンドウが点滅し、自動的に取得できません。 SetForegroundWindow() documentationに記載されている必要条件を参照してください。

関連する問題