Тема: AHK: переключение окон скроллом над таскбаром, закрытие через мидлклик
Здравствуйте!
Помогите, пожалуйста, доделать скрипт на основе имеющихся частей.
Очень хочется умный скрипт для работы с таскбаром, который бы облегчил работу в винде.
Примечание: таскбар - это панель задач.
Чего хочется:
1. Чтобы при наведении курсора на таскбар - все посылаемые скроллы вверх/вниз - переключали бы окна в прямом порядке (а не на основе давности с момента последней активации окон, как это происходит при Alt+Tab).
2. Средний клик по окну должен его закрывать, средний клик по кнопке пуск должен вызывать окно завершения работы, а средний клик по пустому место должен делать ничего.
Имеющиеся наработки:
1. Есть код нуждающийся в доработке, который переключает окна, если курсор находится в правом краю экрана (в скрипте нет проверки на положение таскбара, а у меня таскбар справа)
IsClassUnderMouse(class){
MouseGetPos, , , id
WinGetClass, this_class, ahk_id %id%
return this_class=class
}
#if IsClassUnderMouse("Shell_TrayWnd")
{
WheelUp:: ControlSend MSTaskListWClass1, {Up}, ahk_class Shell_TrayWnd
WheelDown:: ControlSend MSTaskListWClass1, {Down}, ahk_class Shell_TrayWnd
MButton:: ControlSend MSTaskListWClass1, {LButton}{Enter}, ahk_class Shell_TrayWnd
}
Что нужно в нём доработать?
А. Нужно как-то избавиться от необходимости мидл-клика по таскбару для активации выбранного окна. В связи с этим вопрос:
Вопрос: есть ли в AHK что-то типа onmouseout?
Если да, то можно было бы избавиться от клика через автоматический посыл Enter при уводе курсора с таскбара.
Если нет, то подозреваю, что потребуется делать через таймер: т.е. посылать Enter если с момента последнего события прокрутка_над_таскбаром прошло, скажем 0.75 сек.
2. Есть код (он работает, но требует доработки), который закрывает окна при мидл-клике по ним в таскбаре:
~MButton::
MouseGetPos,,, win
ifWinExist, ahk_id %win% ahk_class Shell_TrayWnd
Send {Click}!{F4}
return
Что нужно в нём доработать?
А. При мидл-клике по пустому месту в таскбаре он вызывает окно "Завершение работы Windows", а хотелось бы, чтобы он в таком случае ничего не делал.
Б. Он убивает функцию авто-прокрутки в браузере.
Т.к. я собираюсь активно пользоваться таким скриптом - я готов выявлять и докладывать о всех найденных багах, а итоговый вариант скрипта будет достоин, на мой взгляд, помещения в галерею готовых скриптов.