是否可以确定 window 在 AutoHotKey 中是否有滚动条 function/interaction?

Is it possible to determine if a window has a scrolling function/interaction in AutoHotKey?

为了在更少的按钮上执行更多操作,我希望检测 window 是否具有滚动功能。例如,当弹出窗口询问您是否要保存某些内容时,它往往默认为否。window 没有任何与鼠标滚轮操作相关的功能。在那个范围内,我计划让鼠标滚轮向上和向下输入向上或向下方向。也许有一种方法可以检测 window 是否启用了滚动?或者也许还有另一种解决方法,例如具有特定 windows class?

的弹出窗口 window

查看此处 How I can check if a Window has visible scrollbars using his HWND? 答案中的 GetScrollBarInfo 函数以获得一些有用的信息,但在我看来,最简单的方法是捕获 window classes 并触发相应地使用鼠标滚轮,就像#if 帮助中的示例一样,除了您需要正确的 WinTitle(使用 class 弹出窗口)而不是识别任务栏,您将发送 tabalt+tab 在你的鼠标滚轮而不是音量控制中:

#If MouseIsOver("ahk_class Shell_TrayWnd")
    WheelUp::Send {Volume_Up}
    WheelDown::Send {Volume_Down}

MouseIsOver(WinTitle) {
    MouseGetPos,,, Win
    return WinExist(WinTitle . " ahk_id " . Win)
}

https://www.autohotkey.com/docs/commands/_If.htm

Hth,