Abra a janela inativa rolando para cima no ícone da barra de tarefas

0

Pergunta:

Eu quero usar minha roda de rolagem para abrir uma janela inativa quando rolar para cima em um ícone na barra de tarefas no Windows 10. O mesmo comportamento que no Ubuntu quando você rola para cima em um ícone a barra de tarefas.

Existe uma configuração para fazer isso ou programar?

Por que:

Eu tenho trabalhado em um sistema Linux e agora sou usado para rolar para cima em um ícone para abrir uma janela inativa. Isso é bom para o fluxo de trabalho, eu gostaria de transferir isso para o Windows 10, mas não consigo encontrar nada que faça isso. Sim, eu sei que posso apenas clicar nele, mas às vezes é bom simplesmente rolar quando meu dedo já está lá na maior parte do tempo quando está trabalhando.

Nota : não estou procurando pela funcionalidade de passar o mouse inativo pela rolagem, que funciona muito bem.

    
por Nytrix 28.09.2017 / 12:01

2 respostas

1

Você pode usar o AutoHotkey para fazer isso. Basicamente, você diz que, se o cursor estiver sobre a barra de tarefas ou uma das miniaturas de visualização abertas, a rolagem para cima com a roda do mouse enviará um clique esquerdo, caso contrário, rolará para cima.

Isso requer o uso da API do Windows. Eu testei esse script e ele parece funcionar como você quer, embora eu acredite que ele irá enviar um clique em qualquer lugar na barra de tarefas, e não apenas sobre os ícones das janelas. Temo que seja o melhor que consegui.

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

Se você adicionar um til (~) antes de WheelUp:: , a funcionalidade de empuxo permanecerá mesmo quando um clique esquerdo for enviado (você também poderá eliminar a cláusula else se fizer isso).

Para usar, basta instalar o programa, colocar o script em um arquivo e executá-lo.

    
por 28.09.2017 / 20:10
0

Você pode usar alguns programas como o AlwaysMouseWheel, o controle de mouse com botão X! No Windows 7, existe alguma maneira de fazer o foco da roda de rolagem seguir o mouse?

    
por 28.09.2017 / 13:01