稀に「アクティブウィンドウが最前面に上がって来ない」という問題が発生する事があります。
私はこれの原因がDisplayFusionである事を以前から知ってはいましたが、これまでこの問題の対処法は調べておらず、
(私の環境では)エクスプローラーを再起動する事でも直るので、そのバッチを書いて都度それを実行していました。
そしてつい先日、ふとググってみるとDisplayFusionのフォーラムにこの問題のスレがあるのを見つけました。
こちらのスレでは開発メンバーの1人であるKeith Lammers氏が対処法と原因を解説しています。
Keith Lammers氏曰く、原因は.NETのTopMostプロパティ(フォームを最前面に表示するプロパティ)に関連した
Windows10でのバグだと考えられるようです。対処法は以下の2つです。
- タスクバーの位置を下にする (左/右/上 でこの問題が発生している場合)
- 設定を変更し、DisplayFusionがTopMostを使用しないようにする
2つ目の手順は以下。
- 設定を開く
- "高度な設定" (Advanced Settings) を開く
- フィルターにsetwindowposと入力
- "SetWindowPos: Disallow TopMost Calls" をダブルクリックして "TopMost will never be allowed" に
- "SetWindowPos: Log Calls" をダブルクリックして "SetWindowPos calls will be logged" に
- "高度な設定" を "OK" で閉じ、"適用" をクリック
- DisplayFusionを再起動 (一度終了してから起動)
手順5はログに含めるか否かの設定であるため、問題に直結しているのかは不明ですが、スレで紹介されているので。
(おそらくは問題が再発した際にログをアップしてもらうためにそうしているのかなと…)
(ログのファイル自体はトラブルシューティングで有効にしない限り生成されません。)
DisplayFusionがTopMostを使用しないようにするだけなので、環境全体に大きな影響が発生する事は無いと思われます。
ただ、副作用として「タイトルバーのボタンがアクティブウィンドウの後ろに表示され、タスクバーのプレビューと
ツールチップがアクティブウィンドウの前に表示されない場合がある」とされています。
私の環境では発生していませんが、副作用が確認されかつタスクバーが下以外の方は、タスクバーを下にしてみる方が
良いかもしれません。或いは、#15を試してみると良いかも…
(原因がTopMostだと判明する前にKeith Lammers氏が紹介した対処法です)
ここで書くことではないと思いますが、諸事情で6月から記事を書けていませんでした。
次は書けてなかった期間のリリースを1つか2つの記事にまとめようかな…
それはそれで書くの大変そうですが…
