これは私が何年もの間WindowsとLinuxで使ってきた設定だからです。
Windows 10では、私はもともとWindows 8向けのもので、このリンクに書かれていたregedit Xmouseの変更を試しました。 http://winaero.com/blog/turn-on-xmouse-active-window -tracking-focus-follow-mouse-pointer-windows-8-1-windows-8-and-windows-7 /
しかし、私は以下の問題を経験しました。
Windowsキーを押してスタートメニューを開いても、キーボード入力は受け付けられません。
開始、検索、または通知をクリックして開くと、それらが対話する前に閉じます。
マウスに追従して使えるフォーカスを取得する方法はありますか。
誰もがこのようにWin10をうまく使っていますか?
Xマウスコントロール を使用してください。これは私が本当のFocus Follows Mouseに最も近いと思うもので、Tweakにはいくつかオプションがあります。インストールや再起動を必要としない小さなオープンソースのユーティリティで、レジストリを自分で変更する手間が省けます。
私が実験した限りでは、Winキーを押した後にキーボードを使ってファイル/プログラムを検索することができます。また、立ち上げ時の通知オプションメニューを使用しても、[開始]メニューと[通知]メニューが表示されなくなることはありません。新しいウィンドウにポインタを移動するのに十分な余地があります。
私はしばらくそれを使っていて、それにとても満足しています、そして bug.n のタイリングウィンドウマネージャ。この設定は私がUNIXでdwmを使っていたのと同じくらい近いです。
次のPowerShellスクリプトは、XMouseプログラムと同じ効果があるはずです。
コード:
$signature = @"
[DllImport("user32.dll")]
public static extern bool SystemParametersInfo(int uAction, int uParam, ref
int lpvParam, int flags );
"@
$systemParamInfo = Add-Type -memberDefinition $signature -Name SloppyFocusMouse -passThru
[Int32]$newVal = 1
$systemParamInfo::SystemParametersInfo(0x1001, 0, [REF]$newVal, 2)
ここから取得した定数
質問のリンクに記載されているレジストリの変更は、Windows 10で機能します。ただし、ユーザー補助の設定で[マウスを使ってウィンドウをアクティブにする]オプションを選択した場合は、変更が必要です。このオプションは、[コントロールパネル]> [使いやすさ]> [マウスの動作の変更]の下にあります。
同じ問題が発生し、チェックボックスが選択されている場合は、選択を解除して適用をクリックし、もう一度選択して変更をやり直します。次回のログイン時には、マウスは正しく動作するはずです。
Windowsには実際にフォーカスフォローフォローマウス( "アクティブウィンドウトラッキング")を有効にするフラグがあります。これはmonstrous "SystemParametersInfo" Win32で簡単に有効にできます。 API呼び出し X-Mouse Controls のように、フラグを有効にするサードパーティ製プログラムがあります。または、PowerShellを使用して直接呼び出しを実行することもできます。
pvParam
引数がどのように使用されるかについてのドキュメントは必ずしも明確ではありません、そしてこの特別な設定をするとき、いくつかのpowershellスニペットは誤って値自体ではなくポインタを渡しますフラグこれはつねにtrue
として解釈されることになります。つまり、誤ってフラグを有効にするために機能しますが、再び無効にするためには機能しません。
以下は、呼び出しを正しく実行するためのPowerShellスニペットです。また、適切なエラーチェックも含まれています。興味のある人が見つかった場合は、SystemParametersInfo
の他の機能のラッパーを追加しやすくするために、簡潔さよりも清潔さを追求しました。
このようなもののための有用なリソースであるために pinvoke.net に叫ぶ。
Add-Type -TypeDefinition @'
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
public static class Spi {
[System.FlagsAttribute]
private enum Flags : uint {
None = 0x0,
UpdateIniFile = 0x1,
SendChange = 0x2,
}
[DllImport("user32.dll", SetLastError = true)]
private static extern bool SystemParametersInfo(
uint uiAction, uint uiParam, UIntPtr pvParam, Flags flags );
[DllImport("user32.dll", SetLastError = true)]
private static extern bool SystemParametersInfo(
uint uiAction, uint uiParam, out bool pvParam, Flags flags );
private static void check( bool ok ) {
if( ! ok )
throw new Win32Exception( Marshal.GetLastWin32Error() );
}
private static UIntPtr ToUIntPtr( this bool value ) {
return new UIntPtr( value ? 1u : 0u );
}
public static bool GetActiveWindowTracking() {
bool enabled;
check( SystemParametersInfo( 0x1000, 0, out enabled, Flags.None ) );
return enabled;
}
public static void SetActiveWindowTracking( bool enabled ) {
// note: pvParam contains the boolean (cast to void*), not a pointer to it!
check( SystemParametersInfo( 0x1001, 0, enabled.ToUIntPtr(), Flags.SendChange ) );
}
}
'@
# check if mouse-focus is enabled
[Spi]::GetActiveWindowTracking()
# disable mouse-focus (default)
[Spi]::SetActiveWindowTracking( $false )
# enable mouse-focus
[Spi]::SetActiveWindowTracking( $true )
UserPreferencesMaskの最初のバイトから40を引くだけではうまくいかない場合は、WinAero Tweakerユーティリティ自体を http://winaero.com/download.phpから入手してください。 view.1796
上記の問題#1はまだ存在していますが、スタートメニュー(ショートカットキーWindow + S)の右側にある虫眼鏡(検索)アイコンを使用するだけで簡単に回避できます。 X-Mouseの機能を手に入れるために払うべき小さな価格。
WinAero Tweakerを使用しても問題#2は発生しません。
この方法を使用してずさんなマウスの動作を実現します。これは、以前のバージョンのWindowsおよびLinuxの post から慣れています。あなたが抱えている問題#2は経験していません。このレジストリの変更を使用するときにあなたとすべてが持つことになる問題#1は問題ではありません。この変更により、ウィンドウでフォーカスが処理される方法が変更されたため、これはまったく予想どおりに機能します。 windowsキーを使用すると、検索メニューではなくスタートメニューにマウスが移動するため、検索メニューではなくフォーカスが移動します。そのため、検索を使用する場合は、検索バーまたは拡大アイコン(外観の設定に応じて)をクリックするか、 Win+S キーコンボとそれは正しいことをします。
私はまだWinaeroをテストしていません。
私はまだインターネット上のどこにもこれらの回避策を見つけていないので、他の人のためにここで文書化するつもりです。
以下の回避策を使用すると、XマウスモードでWindows 10を使用することが実用的になります。
タスクバーのアプリアイコンから利用できるウィンドウが複数あるときに別のウィンドウに切り替える:
ウィンドウを選択する前に、タスクバーのアプリアイコンをクリックしないでください。そうすると、マウスポインタをタスクバーの上に移動するとすぐにウィンドウが消えます。ウィンドウが表示されるまでアプリのアイコンの上にマウスを移動すると、ポインタを必要な場所に移動できます。
タスクビューボタンを使用して別の仮想デスクトップまたはアプリに切り替える:
注:Windows 10の「無効になっているウィンドウをマウスオーバーしたときにスクロールする」設定は便利な追加機能です( Start - > Settings - >を参照)。 Devices - > Mouse&Touchpad )。これはXmouseの機能からは独立しているように見え、ONがデフォルトのようです。
他のウィンドウがアクティブにならない限り、Regkey HKCU\Control Panel\Desktop\ActiveWndTrackTimeoutを0より大きい値に設定します。