高精度タッチパッドのチューニング (touchpad-tuning-guidelines)

OEM は、Windows ベースのデバイスでの既定のタッチパッド エクスペリエンスを、いくつかの方法で調整することができます。 ほとんどのユーザーのニーズは既定値で満たされるため、それを調整する必要があるのは、OEM の望む特定のエクスペリエンスが提供されない場合だけです (また、HorizontalOffset/SpaceBarOffset の場合は常に両方とも設定する必要があります)。

Note

レジストリを誤って変更すると、重大な問題が発生する可能性があるので注意してください。 必ず、以下の手順に注意深く従ってください。 保護を強化するには、変更する前にレジストリをバックアップしてください。 「Windows でレジストリをバックアップおよび復元する方法」をご覧ください。

次に示すチューニング可能なレジストリ値はすべて、タッチパッド デバイスの HKR ハードウェア キーにあります。

HKEY_LOCAL_MACHINE (HKLM)

バージョン 1903 より前の Windows では、グローバルな場所のみがサポートされていました。 既定のグローバルの場所は次のとおりです。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\PrecisionTouchPad

Windows バージョン 1903 以降では、このガイドの各レジストリ値は、最初に HKR キーの下でチェックされた後、見つからなかった場合は次に HKEY_LOCAL_MACHINE キーの下でチェックされます。 これにより、値ごとに HKR の場所を使用して HKLM の既定値をオーバーライドできます。

偶発的なアクティブ化の防止

AAP は、キーボード操作イベントの後の短時間、マウスの移動やタップなどの特定の操作を抑制する、高精度タッチパッドの機能です。 特定のタイムアウトは、操作の種類、入力を受け取ったタッチパッドの領域、およびタッチパッドの設定にあるタッチパッドの感度と呼ばれるユーザー設定によって決まります。 より感度が高いということは、キーボード操作イベント後に入力を抑制する時間が短いことを意味します。 最大感度とは、AAP タイムアウトがゼロで、AAP が有効になっていないことを意味します。

An image showing the AAP setting available options in the Settings App

チューニング可能パラメーター

Windows では、ユーザーが通常の使用中にキーボードまたはタッチパッドに手を乗せているときの誤入力を防ぐことができるよう、タッチパッド上の "カーテン" 領域の 2 つのクラスが定義されています。 これにより、タッチパッドは次の 3 つの領域に分割されます。

  • 高感度領域: この領域では、入力の抑制が最小限になります
  • カーテン領域: この領域では、しばらくの間、入力が抑制される可能性があります
  • スーパーカーテン領域: タップのような特定の種類の入力がこの領域で発生した場合、ほぼ常に抑制されます

カーテンのサイズを明示的に指定する場合でも、SpaceBarOffsetHorizontalOffset を使用して、物理的なタッチパッドの配置情報を提供することを強くお勧めします。 これは、Windows でキーボード操作とポイント操作を切り替えるときに、一貫性のある予測可能なユーザー エクスペリエンスに関する決定を行うために必要です。 詳しくは、Windows 高精度タッチパッド デバイスの統合に関するガイドをご覧ください。

カーテン

3 つの値 CurtainLeftCurtainRightCurtainTop が見つかった場合、これらをそれぞれのエッジからの距離としてカーテンが作成されます。 これら 3 つの値がすべて見つからない場合は、従来の構成 (後の従来のカーテンを参照) が使用され、その後に既定値が適用されます。

レジストリ値 Type ユニット Range 既定値 対象
CurtainTop DWORD Himetric 0+ 0 Windows 10 バージョン 1903 以降
CurtainLeft DWORD Himetric 0+ 0 Windows 10 バージョン 1903 以降
CurtainRight DWORD Himetric 0+ 0 Windows 10 バージョン 1903 以降
CurtainBottom (オプション) DWORD Himetric 0+ 0 Windows 10 バージョン 1903 以降

カーテン (暗黙)

カーテンの構成に関する従来のアルゴリズムでは、タッチパッド イベントの垂直位置に応じてカーテンのサイズが変更され、カスタマイズの柔軟性は高くありません。 今後は、SpaceBarOffsetHorizontalOffset の値のみを設定し、それ以外の場合は上で説明したように CurtainTop などを使用してカーテンを構成することをお勧めします。

An image showing the resizable sensitivity regions on a touchpad

高感度領域は、キーボードの使用中または直後でも応答性を維持することを目的としています。

中央の線の両側の領域の幅 (上の図のゾーンの幅) は、次のように定義されます。

SpacebarOffset + AAPNonCurtainBaseWidth

これは、領域の幅の合計がこの値の 2 倍になることを意味することに注意してください。 この領域では、キーボードに近いほど手のひらが接触するリスクが大きくなるため、SpacebarOffset が考慮されます。

領域の高さは、スペース バーを基準に定義され、タッチパッドの下端までの範囲になります。 ゾーンの上端までの距離は、次のように定義されます。

AAPNonCurtainTop - SpaceBarOffset

レジストリ値 Type ユニット Range 既定値 対象
SpaceBarOffset DWORD Himetric 0+ 1000 Windows 8.1 以降
HorizontalOffset DWORD Himetric [任意] 0 Windows 8.1 - Windows 10 バージョン 1511 (0 以上の範囲)、Windows 10 バージョン 1511 以降 (任意の範囲)
HorizontalOffsetIsNeg DWORD Himetric 0-1 0 Windows 8.1 以降 (Windows 10 バージョン 1511 では非推奨)
AAPNonCurtainTop DWORD Himetric 0+ 1500 Windows 10 バージョン 1607 以降
AAPNonCurtainBaseWidth DWORD Himetric 0+ 1500 Windows 10 バージョン 1607 以降

スーパー カーテン

感度制限ゾーンは、タッチパッドの感度が最も低い領域です。 これは、ユーザーが意図的な使用の間に指を離さないタッチパッドの領域のために設計されています。 これらは既定では非常に小さく、非常に大きなデバイスの場合にのみ拡大する必要があることに注意してください。

An image showing the restricted sensitivity zone on a touchpad

上、左、右のゾーンのサイズは、それぞれのエッジからの距離として個別に定義されます。 次の表に示すレジストリ キーを使用します。

レジストリ値 Type ユニット Range 既定値 対象
SuperCurtainTop DWORD Himetric 0+ 100 Windows 10 バージョン 1511 以降
SuperCurtainLeft DWORD Himetric 0+ 100 Windows 10 バージョン 1511 以降
SuperCurtainRight DWORD Himetric 0+ 100 Windows 10 バージョン 1511 以降
SuperCurtainBottom DWORD Himetric 0+ 100 Windows 10 バージョン 1903 以降

右クリック ゾーン

次のレジストリ値を使用すると、右クリック ゾーンを構成できます。 高さは、下端から測ったタッチパッド全体の高さのパーセンテージとして、RightClickZoneHeight によって表されます。 RightClickZoneWidth は、幅のパーセンテージでもあり、右手構成の場合は右のエッジから、スワップ マウス ボタン オプションが有効になっている左手構成の場合は左のエッジから測定されます。

レジストリ値 Type ユニット Range 既定値 対象
RightClickZoneHeight DWORD パーセント 1 ~ 100 25 Windows 10 バージョン 1507 以降
RightClickZoneWidth DWORD パーセント 1 ~ 100 50 Windows 10 バージョン 1507 以降

偶発的なアクティブ化の保護の抑制

次のキーを設定することは、AAP を無効にする [最大の感度] をユーザーが選択するのと同じことです。 このキーを設定すると、(上に示した) Windows 設定でのタッチパッドの感度設定は無効になります。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PrecisionTouchPad\AAPDisabled

レジストリ値 Type ユニット Range 既定値 対象
AAPDisabled DWORD 該当なし 0-1 0 Windows 10 バージョン 1511 以降

キーボードとマウスのコレクションの非マウスとしての検出

Windows には、特定のデバイスを除外できるレジストリ設定が用意されています。 これは次の場所にあります: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PrecisionTouchPad\IgnoredExternalMice

このキーを構成することは、レガシ タッチパッドを強制的に有効にすることと似ています。 詳細については、「レガシ タッチパッドの強制検出」を参照してください。

HKEY_CURRENT_USER (HKCU)

OEM は、以下の HKCU レジストリ値を変更して、ユーザーのタッチパッド設定を変更できます。 すべての値はレジストリ キー HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\PrecisionTouchPad の下にあります。 新しいユーザー プロファイルの作成時に使用される既定値を変更するには、%SystemDrive%\Users\Default\NTUSER.DAT にあるレジストリ ハイブに変更を加える必要があります。

マウスの接続時にタッチパッドをオンのままにする

この設定では、外部マウスが存在するときにタッチパッドを引き続きアクティブにすることを許可するかどうかを指定します。 非アクティブの場合、タッチパッドによって生成された入力はすべて無視されます。

レジストリ値 Type ユニット Range 既定値 対象
LeaveOnWithMouse DWORD 該当なし 0-1 1 Windows 10 バージョン 1511 以降

カーソル速度

この設定では、タッチパッドによって生成されたマウスの動作によりカーソルが移動する速度を指定します。 有効な値は 1 - 20 です (1 と 20 を含みます)。 この設定のユーザー インターフェイスでは、範囲が 2 - 20 (2 ずつ変化) に制限されます。

レジストリ値 Type ユニット Range 既定値 対象
CursorSpeed DWORD 該当なし 1-20 10 Windows 10 バージョン 1511 以降

クリック感度

この設定では、タッチパッドのハプティクス クリック検出がサポートされている場合、その相対感度を指定します。 有効な値は 0 - 100 です (0 と 100 を含みます)。 この設定のユーザー インターフェイスでは、範囲が 0 - 100 (50 ずつ変化) に制限されます。 これは "ボタン押下しきい値" 機能レポートのユーザー向け設定です。

レジストリ値 Type ユニット Range 既定値 対象
ClickForceSensitivity DWORD パーセント 0 ~ 100 50 Windows 11 ビルド 26027 以降

[タッチパッド フィードバック] セクション

Windows では、タッチパッド設定の [タッチパッド フィードバック] セクションの設定を変更できます。 An image showing the Touchpad feedback section of the settings page

フィードバックが有効

この設定では、サポートされているタッチパッドでハプティクス フィードバックを有効にするかどうかを指定します。

レジストリ値 Type ユニット Range 既定値 対象
FeedbackEnabled DWORD 該当なし 0-1 1 Windows 11

Note

優れたユーザー エクスペリエンスのためには、ハプティクス フィードバックを既定で有効にする必要があります。 このため、この値は 1 に設定されたままにする必要があります。

強度

この設定では、タッチパッドのハプティクス フィードバックの相対的な強度を指定します (サポートされている場合)。 有効な値は 0 - 100 です (0 と 100 を含みます)。 この設定のユーザー インターフェイスでは、範囲が 0 - 100 (25 ずつ変化) に制限されます。 これは "ハプティクス強度" 機能レポートのユーザー向け設定です。

Note

優れたユーザー エクスペリエンスのためには、ハプティクス フィードバックを既定で有効にする必要があります。 このため、この値は 0 以外の値に設定する必要があります。

レジストリ値 Type ユニット Range 既定値 対象
FeedbackIntensity DWORD パーセント 0 ~ 100 50 Windows 11

[タップ] セクション

Windows では、タッチパッド設定の [タップ] セクションの設定を変更できます。 An image showing the Taps section of the settings page

タッチパッドの感度

この設定は、タッチパッドの感度レベルを指定します。 タッチパッドの感度が高いほど、キーボード アクティビティの後にマウス入力の生成が抑制されにくくなります。 値を小さくすると、感度が高くなります (0 は感度が最高であることを示します)。

レジストリ値 Type ユニット Range 既定値 対象
AAPThreshold DWORD 該当なし 0-4 2 Windows 10 バージョン 1511 以降

1 本指でタップして 1 回クリック

この設定では、1 本指でのタップを有効にするかどうかを指定します。

レジストリ値 Type ユニット Range 既定値 対象
TapsEnabled DWORD 該当なし 0-1 1 Windows 10 バージョン 1511 以降

2 本指でタップして右クリック

この設定では、2 本指でのタップを有効にするかどうかを指定します。

レジストリ値 Type ユニット Range 既定値 対象
TwoFingerTapEnabled DWORD 該当なし 0-1 1 Windows 10 バージョン 1511 以降

2 回タップとドラッグで複数選択

この設定では、タップアンドドラッグのジェスチャを有効にするかどうかを指定します。

レジストリ値 Type ユニット Range 既定値 対象
TapAndDrag DWORD 該当なし 0-1 1 Windows 10 バージョン 1511 以降

タッチパッドの右下隅を押して右クリック

この設定では、タッチパッドの右下隅を押したときに、左クリックの代わりに右クリックが生成されるかどうかを指定します。 ユーザーがマウスの左右のボタン (GetSystemMetrics(SM_SWAPBUTTON) が true) を入れ替えた場合、右クリック ゾーンはタッチパッドの左下隅に水平方向にミラー化されます。

レジストリ値 Type ユニット Range 既定値 対象
RightClickZoneEnabled DWORD 該当なし 0-1 1 Windows 10 バージョン 1511 以降

[スクロールとズーム] セクション

Windows では、タッチパッド設定の [スクロールとズーム] セクションの設定を変更できます。 An image showing the Scroll & zoom section of the settings page

Note

現在、タッチパッドのスクロールまたはズームの速度を変更することはできません。

Drag two fingers to scroll

この設定では、2 本指でのパンを有効にするかどうかを指定します。

レジストリ値 Type ユニット Range 既定値 対象
PanEnabled DWORD 該当なし 0-1 1 Windows 10 バージョン 1511 以降

スクロール方向

この設定では、コンテンツが 2 本指でのパンでコンテンツをスクロールする方向を反転するかどうかを指定します。 既定の状態では、タッチパッドの接点を上方向に動かすと、コンテンツが下方向にスクロールし、接点を左方向に動かすと、コンテンツが右方向にスクロールします。

レジストリ値 Type ユニット Range 既定値 対象
ScrollDirection DWORD 該当なし 0-1 0 Windows 10 バージョン 1511 以降

ピンチ操作によるズーム

この設定では、2 本指でのズームを有効にするかどうかを指定します。

レジストリ値 Type ユニット Range 既定値 対象
ZoomEnabled DWORD 該当なし 0-1 1 Windows 10 バージョン 1511 以降

ユーザー インターフェイスが存在しない設定

次の設定は Windows でサポートされていますが、設定アプリケーションでユーザーには公開されていません。

マウスの加速度

この設定では、タッチパッドによって生成されたマウスの動作に、SystemParametersInfo(SPI_GETMOUSE) で返されたユーザーのマウスの加速度設定を適用するかどうかを指定します。 0 の場合、マウスの動作には常に加速度が適用されます。

レジストリ値 Type ユニット Range 既定値 対象
HonorMouseAccelSetting DWORD 該当なし 0-1 0 Windows 10 バージョン 1511 以降

右クリック ゾーンの幅

この設定では、タッチパッドの右クリック ゾーンの相対的な幅を指定します。 有効な値は 0 - 100 です (0 と 100 を含みます)。 0 以外の場合、デバイスの構成がオーバーライドされます。

レジストリ値 Type ユニット Range 既定値 対象
RightClickZoneWidth DWORD パーセント 0 ~ 100 0 Windows 11 ビルド 26027 以降

右クリック ゾーンの高さ

この設定では、タッチパッドの右クリック ゾーンの相対的な高さを指定します。 有効な値は 0 - 100 です (0 と 100 を含みます)。 0 以外の場合、デバイスの構成がオーバーライドされます。

レジストリ値 Type ユニット Range 既定値 対象
RightClickZoneHeight DWORD パーセント 0 ~ 100 0 Windows 11 ビルド 26027 以降

設定の動的なクエリと変更

Windows 11 ビルド 26027 以降、ユーザーのタッチパッド設定を SystemParametersInfo API 経由で動的に照会したり、変更したりできます。 次に例を示します。

// Get the user's touchpad settings.
TOUCHPAD_PARAMETERS params = {};
params.versionNumber = TOUCHPAD_PARAMETERS_LATEST_VERSION;
RETURN_IF_WIN32_BOOL_FALSE(
    ::SystemParametersInfo(SPI_GETTOUCHPADPARAMETERS, sizeof(params), &params, 0 /*fWinIni*/));

// Override the touchpad's right-click zone to have a 50% width and 33% height.
// NOTE: changing user settings should only be performed in response to explicit user intent.
params.rightClickZoneWidth = 50;
params.rightClickZoneHeight = 33;

RETURN_IF_WIN32_BOOL_FALSE(
    ::SystemParametersInfo(SPI_SETTOUCHPADPARAMETERS, sizeof(params), &params, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE));

SystemParametersInfo のあらゆる呼び出しと同様に、設定を正しく照会または変更するため、プロセスはユーザーのアカウントで実行する必要があります。