Windows環境においてウィンドウをマウスオーバーでフォーカスしアクティブにしない設定法まとめ

大半のXウィンドウマネージャでは、ウィンドウをマウスオーバーでフォーカスだけをするようになっている。Windowsでは、通常はマウスオーバーではウィンドウをフォーカスしないが、"コンピュータの簡単操作センター"から、フォーカスするように設定できる。
しかし、この方法では、マウスオーバーするたびにウィンドウがアクティブ化(最前面に押出される)されてしまい、非常に操作しにくいことがある。この問題を解決するために、Xウィンドウマネージャの様に、ウィンドウをマウスオーバーでフォーカスするが、アクティブにはしない設定方法をまとめる。

環境

設定方法

レジストリ[HKEY_CURRENT_USER\Control Panel\Desktop]にあるUserPreferencesMaskの値を、"9F 3E 07 80 12 00 00 00"に変更すれば良い。
また、フォーカスが変わるまでの時間は、レジストリ[HKEY_CURRENT_USER\Control Panel\Desktop]にあるActiveWndTrkTimeoutの値で変更できる。


設定は、以下の手順で行う。

  1. レジストリキーのバックアップ
  2. レジストリキーの書込み
レジストリキーのバックアップ

まず、管理者権限のあるユーザアカウントでログインし、コマンドプロンプトを管理者で実行する。
次に、コマンドプロンプトで以下のコマンドを入力する。


> reg export "HKCU\Control Panel\Desktop" C:\reg_backup.reg

最後に、ドライブC直下に"reg_backup.reg"というバックアップファイルが出力されるので、任意の場所で保管しておく。

レジストリキーの書込み

まず、管理者で実行したコマンドプロンプトで、以下のコマンドを入力し、UserPreferencesMaskの値を変更する。


> reg add "HKCU\Control Panel\Desktop" /v "UserPreferencesMask" /t REG_BINARY /d 9F3E078012000000

次に、以下のコマンドでActiveWndTrackTimeoutの値を変更する。
時間(/d に続く数値)はミリ秒の任意の値を入力する。
(個人的には100くらいが丁度良いと思う。小さすぎる値にすると、タスクバー上のプレビューなどが使いづらくなるので。)


> reg add "HKCU\Control Panel\Desktop" /v "ActiveWndTrkTimeout" /t REG_DWORD /d 100
最後に、一旦ログオフして再度ログインする。

復旧方法

バックアップした"reg_backup.reg"ファイル上でメニューを開き、結合を実行する。

参考サイト

  1. Windows7 マウスオーバ フォーカス移動 - とあるシステムエンジニア徒然草
    http://k-shrimp-ebi.blogspot.jp/2012/04/windows7.html