1 (изменено: Drugoy, 2015-09-07 13:21:07)

Тема: AHK: Как отличить клик по тайтлбару окна от кликов в остальные места?

Хочу написать скрипт для копирования заголовка активного окна мидл-кликом по его тайтл-бару. При этом, если пользователь делает мидл-клик в окне в другой части - то скрипт не должен срабатывать (т.е. нативная функция мидл-клика не должна блокироваться).

Можно сделать псевдо-определение тайтл-бара окна проверяя относительную позицию курсора в окне и условившись, что высота тайтл-бара равна 22px.
Но это ненадёжная проверка по косвенным признакам.

Есть ли возможность (возможно, используя WinApi вызовы) достоверно определять что находится под курсором (панель заголовка окна или нет)?

2

Re: AHK: Как отличить клик по тайтлбару окна от кликов в остальные места?

CoordMode, Mouse, Screen
Global Title_Win
GetTitle(){
MouseGetPos,x,y,id
SendMessage, 0x84, 0, (x&0xFFFF)|(y&0xFFFF)<<16,, ahk_id %id%
WinGetTitle,Title_Win,ahk_id %id%
return (ErrorLevel = 2) and WinActive("ahk_id" id)
}

#if GetTitle()
~MButton::tooltip % Title_Win
#if