Windows 无焦点滚动

Windows 无焦点滚动

因此,我家里有一台 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 和类似的应用程序可以正常运行。

其中一个例子是http://drivers.synaptics.com/Synaptics_v16_3_15_1_C_XP32_Vista32_Win7-32​​_XP64_Vista64_Win7-64_Signed_Acme_Inc.zip

相关内容