Можно ли определить, есть ли у окна функция прокрутки / взаимодействие в AutoHotKey? - PullRequest
2 голосов
/ 31 марта 2020

Чтобы добавить больше действий на меньшее количество кнопок, я надеялся определить, имеет ли окно функции прокрутки. Например, когда всплывающее окно спрашивает вас, хотите ли вы что-то сохранить или нет, оно по умолчанию имеет значение Нет. Это окно не имеет никаких функций, связанных с действием колеса мыши. В этой области я планировал использовать колесо мыши вверх и вниз для ввода направления вверх или вниз. Может быть, есть способ определить, включена ли в окне прокрутка? Или, может быть, есть другой обходной путь, например, это всплывающее окно с указанным c windows классом?

1 Ответ

2 голосов
/ 31 марта 2020

Посмотрите на функцию GetScrollBarInfo в ответе здесь Как я могу проверить, имеет ли Окно видимые полосы прокрутки, используя его HWND? для некоторой полезной информации, но, на мой взгляд, проще всего захватить классы окна и запускайте колеса мыши соответственно, как в примере с справкой для #if, за исключением того, что вам потребуется правильный WinTitle (используйте всплывающий класс) вместо идентификации панели задач, и вы отправите tab и alt+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,

...