因此,我家里有一台 Windows 8 笔记本电脑,办公室有一台 Windows 7 笔记本电脑。两台笔记本电脑都配有 Synaptics 触控板。问题是,在办公室笔记本电脑上,我可以滚动任何窗口,无论当前聚焦的是哪个窗口。这就是我希望两台电脑都具有的行为。
目前,Windows 8 电脑上不会出现这种情况。我知道我可以使用(并且已经尝试过!)wizmouse、alwaysmousewheel、katmouse 等;但它们都不能像工作电脑那样 100% 地工作。katmouse 有时会停止工作,alwaysmousewheel 也会停止工作,我遇到了它自己滚动的问题,wizmouse 有时会导致鼠标滞后。其他的都不起作用。
在我拥有工作电脑之前,我已经对它不抱任何希望了,但现在我发现它可以在较旧的操作系统上开箱即用,无需使用任何外部程序,我很好奇为什么我不能让它在我自己的电脑上以同样的方式工作!
我所有的搜索都只是人们建议我已经尝试过的外部程序,所以建议这些的答案并不是我真正想要的(除非我可以用 synaptics 驱动程序做一些神奇的事情,顺便说一下,它在 Windows 8 计算机上是最新的,但它不能在上面工作)。
答案1
拖拽也有这个功能。
答案2
我用鼠标按钮控制在我的计算机上。我发现它与我使用的所有程序最兼容。
答案3
在 AutoHotKey 中有一种方法可以做到这一点。作为多年来活跃的 KatMouse 用户,这个方法对我来说已经足够好了,所以我暂时关闭了 KatMouse(我们将看看 AHK 脚本是否有效)。
以下是脚本(来源):
CoordMode, Mouse, Screen
return
WheelUp::
MouseGetPos, m_x, m_y
hw_m_target := DllCall( "WindowFromPoint", "int", m_x, "int", m_y )
; WM_MOUSEWHEEL
; WHEEL_DELTA = 120
SendMessage, 0x20A, 120 << 16, ( m_y << 16 )|m_x,, ahk_id %hw_m_target%
return
WheelDown::
MouseGetPos, m_x, m_y
hw_m_target := DllCall( "WindowFromPoint", "int", m_x, "int", m_y )
; WM_MOUSEWHEEL
; WHEEL_DELTA = 120
SendMessage, 0x20A, -120 << 16, ( m_y << 16 )|m_x,, ahk_id %hw_m_target%
return
到目前为止,在我简短的测试中,它在 KatMouse 曾经使用过的所有地方以及其他几个地方都正常工作。KatMouse 以前在 Visual Studio 2010 中从未正常工作,但这个似乎可以。我还发现当我使用远程桌面时它不会像 KatMouse 那样禁用(尽管活动滚动没有传递到远程计算机)。
答案4
Synaptics 驱动程序的某些特定旧版本似乎会发送正常的鼠标滚轮事件,因此 AlwaysMouseWheel 和类似的应用程序可以正常运行。