Вопрос:

Я хочу использовать колесо прокрутки, чтобы открыть неактивное окно при прокрутке вверх по значку на панели задач в Windows 10. То же поведение, что и в Ubuntu, когда вы прокручиваете значок на панели задач.

Есть ли для этого настройка или программа?

Зачем:

Я работал над системой Linux и теперь использую прокрутку вверх значка, чтобы открыть неактивное окно. Это приятное чувство для рабочего процесса, я хотел бы перенести это в Windows 10, но не могу найти ничего, что делает это. Да, я знаю, что могу просто щелкнуть по нему, но иногда приятно просто прокрутить, так как мой палец уже там часто работает.

Примечание: я не ищу неактивную функцию наведения на прокрутку, которая прекрасно работает.

2 ответа2

1

Вы можете использовать AutoHotkey для этого. В основном вы говорите ему, что если ваш курсор находится над панелью задач или одним из эскизов предварительного просмотра, который открывается из нее, то прокрутка с помощью колесика мыши отправляет левый щелчок, в противном случае он прокручивается вверх.

Это требует использования 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 в этом месте).

Чтобы использовать, просто установите программу, поместите скрипт в файл и запустите его.

0

Вы можете использовать некоторые программы, такие как AlwaysMouseWheel, X-Button Mouse Control! В Windows 7 есть ли способ заставить фокусировку колеса прокрутки следовать за мышью?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .