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