タスクバーアイコンを上にスクロールして非アクティブなウィンドウを開く

タスクバーアイコンを上にスクロールして非アクティブなウィンドウを開く

質問:

スクロールホイールを使って、アイコンを上にスクロールしたときに非アクティブなウィンドウを開きたい。タスクバー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 で、スクロールホイールのフォーカスをマウスに追従させる方法はありますか?

関連情報