问题:
我想使用滚轮在向上滚动图标时打开一个非活动窗口任务栏在 Windows 10 中。当您在任务栏中的图标上向上滚动时,其行为与在 Ubuntu 中相同。
是否有一个设置或程序可以做到这一点?
为什么:
我一直在使用 Linux 系统,现在习惯于向上滚动图标以打开非活动窗口。这对于工作流程来说感觉很好,我想将其转移到 Windows 10,但找不到任何可以做到这一点的东西。是的,我知道我可以直接单击它,但有时只需滚动一下就很好了,因为我工作时手指大部分时间都在那里。
笔记: 我是不是寻找非活动的悬停滚动功能,效果很好。
答案1
您可以使用自动热键执行此操作。基本上,您告诉它,如果您的光标位于任务栏上或从任务栏打开的预览缩略图之一上,则使用鼠标滚轮向上滚动会发送左键单击,否则会向上滚动。
这需要使用 Windows API。我已经测试了这个脚本,它似乎可以按照你想要的方式工作,尽管我相信它会发送一个点击任何地方在任务栏上,而不仅仅是窗口图标上。恐怕这是我能做到的最好了。
GetWinUnderMouse(what="Title")
{
; Allocate the memory (8 bytes) for the POINT structure
VarSetCapacity(POINT, 8, 0)
; Call the GetCursorPos function with the address
; of the POINT structure we just created
DllCall("GetCursorPos", uint, &POINT)
; Use NumGet to get the information out of the structure
; the x-value is stored in the first 4 bytes, and
; the y-value in the last 4
X := NumGet(POINT, 0)
Y := NumGet(POINT, 4)
return GetWinAtCoords(X, Y, what)
}
GetWinAtCoords(x,y,what="Title") ; by SKAN and Learning one
{
; Returns Title/ID/Class/PID of window at given coordinates
WinID := DllCall( "GetAncestor", UInt ; by SKAN
,DllCall( "WindowFromPoint", Int,X, Int,Y )
, UInt, GA_ROOT := 2)
if what = Title
{
WinGetTitle, WinTitle, ahk_id %WinID%
Return WinTitle
}
else if what = ID
Return WinID
else if what = Class
{
WinGetClass, WinClass, ahk_id %WinID%
Return WinClass
}
else if what = PID
{
WinGet, WinPID, PID, ahk_id %WinID%
Return WinPID
}
}
WheelUp::
PointedClass := GetWinUnderMouse("Class")
if (PointedClass = "TaskListThumbnailWnd" or PointedClass = "Shell_TrayWnd")
{
Send, {LButton}
}
else
{
Send, {WheelUp}
}
Return
如果您在此之前添加波浪符号 (~) ,那么即使发送了左键单击,向上滚动功能仍将保留(如果这样做,WheelUp::
您也可以取消其中的子句)。else
要使用,只需安装程序,将脚本放入文件中并运行它。
答案2
您可以使用一些程序,例如AlwaysMouseWheel,X-Button Mouse Control! 在 Windows 7 中,有没有办法让滚轮的焦点跟随鼠标?