1 (изменено: Mikki, 2008-10-11 13:57:49)

Тема: 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 ; закончить обработку горячей клавиши
Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

2

Re: AHK: двойной клик на таскбаре

Скрипт в первом посте дополнен поправками от tubudum-а.
Как следствие, скрипт Корректно обрабатывается при двойных кликах:
- на кнопке пуск панели задач;
- или на свободном месте панели быстрого запуска (Quick Launch);
- или на свободном месте панели задач отображающей запущенные приложения;
Не изменяет стандартную обработку кликов в области системного трея.

Замечание: При двойных кликах на иконку запущенного приложения может не всегда запускать Таск Менеджер ввиду того, что если первый клик активирует приложение и оно быстренько успевает подняться, то второй клик уже придется не в "панели задач", а "вовне активного приложения". Проблемы другого характера могут возникнуть и с двойными кликами на иконках в Quick Launch - скажем можно открыть пару шустрых приложений и диспетчер задач. Так что для однозначного результата лучше всегда кликать в пустом месте панели быстрого запуска или панели задач отображающей запущенные приложения.

Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди