##環境
C#
WPF
.NET Framework 4.5.1
##背景
常駐型のアプリケーションを作成しており、アプリケーションが非アクティブ化すると最小化したいのですが、
どのようにすれば非アクティブ化になったことを検知できるのか、またどのイベントを使用すればよいのかになやんでいます。
##試した事
幾つかのそれっぽいイベントをためしてみました。
LocationChanged
LostFocus
LostTouchCapture
StateChanged
Unloaded
しかし、非アクティブ化になったことを検知できませんでした。
以下のコードでアクティブ化されているアプリケーション名を取得できることは分かりましたが、非アクティブ化された瞬間に最小化したいです。タイマーなどで0.1秒毎にアクティブ化されているかどうかなどを監視するという力技で実現可能そうですが流石にそんな無駄な処理は行いたくありません。非アクティブ化されたことを即座に知ることのできるイベントや方法はないのでしょうか。
C#
1Application.Current.Windows.Cast<Window>().SingleOrDefault(x => x.IsActive);
回答2件
あなたの回答
tips
プレビュー