新しいHPZBookG6を持っています。 2つのマウスボタン行があります。上の行はキーボードの中央にあるマウスポインタ用で、下の行はトラックパッド用です。トラックパッド(およびマウスボタンの一番下の行)を完全に無効にしました。私はマウスポインタとマウスボタンの一番上の行のみを使用します。したがって、ここでの私の投稿は、この写真で赤で囲まれたマウスポインタとマウスの上部中央ボタンのみを参照しています。
真ん中のボタンは、主にポインターと組み合わせてウィンドウをスクロールするために使用します。真ん中のボタンを(親指で)押したまま、同時にポインターを動かして、目的の方向と速度にスクロールします。これは多くのプログラムでうまく機能しますが、他のプログラムではうまく機能しません。 FirefoxやChromeなどの多くのアプリケーションやWordやExcelなどの多くのアプリケーションではうまく機能しますが、他のアプリケーション、特にWindowsエクスプローラー、Windows構成ウィンドウ、MicrosoftOneNoteなどではまったく機能しません。 。
私はまた、これらすべてのアプリケーションでポインターと中央ボタンでうまくスクロールできるLenovo ThinkPad T510を持っているので、私が知る限り、私が名前を付けたアプリケーションはすべて中央ボタンのマウススクロールをサポートしています。
私はこのトピックについて多くの検索を行いましたが、適切な解決策を見つけることができませんでした。 (特に、HP Webサイトから最新のドライバーに更新しました。)AutoHotKeyスクリプトも試しました( AutoHotkeyのスクロールとミドルクリックとマウスの加速 )が、マウスが消えてしまいましたスクリプトが複雑すぎてデバッグできないので、それ以上追求しませんでした。
ラップトップ上のこれらのアプリケーション(Windowsエクスプローラー、Microsoft OneNoteなど)で中ボタンスクロールを機能させるためのガイダンスをいただければ幸いです。これはマイナーな出来事ですが、毎日何度も遭遇するものなので、動かしていきたいと思います。
AutoHotKeyソリューションをさらに検索しました ahpによるスクリプトを見つけました マイナーなバグ修正の後、私のために機能します:
; Description: Scroll Explorer on middle mouse button drag
; Permalink: https://autohotkey.com/boards/viewtopic.php?t=43715
; Author: aph
; Version: 0.2
$*MButton::
MouseGetPos, CursorX, CursorY, Window, ClassNN
WinGetTitle, Title, ahk_id %Window%
WinGetClass, ahk_class, ahk_id %Window%
WinGet ahk_exe, ProcessName, ahk_id %Window%
WinGet ahk_PID, PID, ahk_id %Window%
WinGetText, VisibleText, ahk_id %Window%
MouseGetPos, CursorX_ended, CursorY_ended, Window_ended, ClassNN_ended
WinGetClass, ahk_class_ended, ahk_id %Window_ended%
WinGet ahk_exe_ended, ProcessName, ahk_id %Window_ended%
AllowedApp := ahk_exe = "Explorer.exe" or ahk_exe = "mmc.exe" or ahk_exe = "systempropertiesadvanced.exe" or ahk_exe = "filezilla.exe" or ahk_exe = "7zFM.exe"
AllowedText := InStr(VisibleText, "Tree View") or InStr(VisibleText, "FolderView")
LimitedApp := ahk_exe = "cmd.exe"
DisabledApp := ahk_class_ended = "Shell_TrayWnd" or ahk_class_ended = "WorkerW"
if (AllowedText >= 1)
AllowedText = 1
If (DisabledApp) {
SendInput, {MButton Down}
Return
}
Else If (!AllowedApp and !LimitedApp and !AllowedText) {
SendInput, {MButton Down}
Return
}
Else {
If (AllowedApp) {
SendInput, {MButton}
}
MiddleScroll := 1
SetSystemCursor("SIZEALL")
Sensitivity = 10 ; How far the middle mouse wheel has to be dragged before scrolling is triggered
MouseGetPos, X1, Y1, , c, 2
OrigTimer := 50 ; How quickly the file list scrolls
SetTimer, MBScroll, %OrigTimer%
MBScroll:
MouseGetPos, X2, Y2
Distance := Abs(Y2-Y1)
If (Distance >= Sensitivity) {
Rounded := % Round((Distance / 200)**1.25+1)
DllCall("SystemParametersInfo", UInt, 0x69, UInt, Round(Ln(Rounded)+1), UInt, 0, UInt, 0) ; Vary lines scrolled by distance of drag
Percent := (A_ScreenHeight - (Max(Y1, Abs(Y1-A_ScreenHeight)) - Distance)) / A_ScreenHeight * 100
Timer := Round(OrigTimer - (OrigTimer/2*Percent/100))
SetTimer, MBScroll, %Timer%
SendInput, % "{Blind}{Wheel" (Y2 > Y1 ? "Down" : "Up") " " Rounded "}"
}
Return
$*MButton Up::
DllCall("SystemParametersInfo", UInt, 0x69, UInt, 3, UInt, 0, UInt, 0) ; Set back to 3 lines scrolled
SetTimer, MBScroll, off
SetSystemCursor()
MiddleScroll := 0
SendInput {MButton Up}
SetSystemCursor(Cursor="") {
SystemCursors := "32512IDC_ARROW|32513IDC_IBEAM|32514IDC_WAIT|32515IDC_CROSS|32516IDC_UPARROW|32642IDC_SIZENWSE|32643IDC_SIZENESW|32644IDC_SIZEWE|32645IDC_SIZENS|32646IDC_SIZEALL|32648IDC_NO|32649IDC_HAND|32650IDC_APPSTARTING|32651IDC_HELP"
If (Cursor = "")
Return DllCall("SystemParametersInfo", "UInt", 0x57, "UInt", 0, "UInt", 0, "UInt", 0)
If (StrLen(SystemCursors) = 221)
Loop, Parse, SystemCursors, |
StringReplace, SystemCursors, SystemCursors, %A_LoopField%, % DllCall("LoadCursor", "UInt", 0, "Int", SubStr(A_LoopField, 1, 5)) A_LoopField
If !(Cursor := SubStr(SystemCursors, InStr(SystemCursors "|", "IDC_" Cursor "|") - 5 - p := (StrLen(SystemCursors) - 221) / 14, 5))
MsgBox, 262160, %A_ScriptName% - %A_ThisFunc%(): Error, Invalid cursor name!
Else
Loop, Parse, SystemCursors, |
DllCall("SetSystemCursor", "UInt", DllCall("CopyIcon", "UInt", Cursor), "Int", SubStr(A_LoopField, 6, p))
}
Return
}
Return