Тема: AHK: двойной клик на таскбаре
Собственно, раскрытие темы YMP http://forum.script-coding.com/viewtopic.php?id=490 "Разные действия для одиночного и двойного нажатия клавиши".
При двойном клике на TaskBar-e (кто не в курсах - это панелька на которой расположена клавиша "Пуск" ) открывается окно Диспетчера задач. Скрипт дополнен поправками от tubudum-а.
Как следствие, скрипт Корректно обрабатывается при двойных кликах:
- на кнопке пуск панели задач;
- или на свободном месте панели быстрого запуска (Quick Launch);
- или на свободном месте панели задач отображающей запущенные приложения;
Не изменяет стандартную обработку кликов в области системного трея.
Замечание: При двойных кликах на иконку запущенного приложения может не всегда запускать Таск Менеджер ввиду того, что если первый клик активирует приложение и оно быстренько успевает подняться, то второй клик уже придется не в "панели задач", а "вовне активного приложения". Проблемы другого характера могут возникнуть и с двойными кликами на иконках в Quick Launch - скажем можно открыть пару шустрых приложений и диспетчер задач. Так что для однозначного результата лучше всегда кликать в пустом месте панели быстрого запуска или панели задач отображающей запущенные приложения.
~LButton::
; LButton (ДВОЙНОЕ нажатие) - открывать Task Menager при даблклике на Task Bar-e
WinGetClass, Win_Class, A
MouseGetPos,,,, control
if (Win_Class = "Shell_TrayWnd" and control = "Button1" or control = "ToolbarWindow323" or control = "ToolbarWindow322") ; если клик на панели задач и при этом на кнопке пуск или на панели быстрого запуска (Quick Launch) или на панелью задач отображающей запущенные приложения, то...
{
if (A_PriorHotkey <> "~LButton" or A_TimeSincePriorHotkey > 250)
; если предыдущая клавиша - не LButton,
; или со времени нажатия LButton прошло больше 250 миллисекунд, то...
{
KeyWait, LButton
;ожидать, пока клавиша не будет отпущена
;(чтобы исключить срабатывание от простого удержания нажатой клавиши)
Return ; закончить обработку горячей клавиши после отжатия клавиши
}
; а вот если предыдущая клавиша - LButton,
; и со времени нажатия LButton прошло НЕ больше 250 миллисекунд, то...
KeyWait, LButton
; ожидать пока клавиша не будет отпущена
Run, "%A_WinDir%\system32\taskmgr.exe" ; запустить Таск Менеджер
}
Return ; закончить обработку горячей клавиши