Тема: AHK: Lbutton WheelUp Firefox CtrlTab AltTab + возмож выделения текста
Оставлю здесь то, что в итоге получилось.
; lbutton wheelup, WheelUp прокручен медленно - запустить Firefox, либо активировать если запущен, либо CtrlTab если открыт.
; lbutton wheelup, WheelUp прокручен быстро - AltTab.
; ctrl lbutton wheelup, WheelUp - WheelUp.
; ctrl отпущен перед Lbutton - lbutton wheelup выполняет роль lbutton wheelup.
; ctrl отпущен после Lbutton - lbutton wheelup выполняет хоткеи заданные в скрипте.
#HotkeyInterval 0
Delay := 25 ; задержка между нажатиями хоткея
Repeat := 0
~LButton:: LButtonDown := 1
~LButton Up:: LButtonDown := 0
#If LButtonDown
LCtrl:: CtrlDown := 1
LCtrl Up:: CtrlDown := 0
WheelUp::
SetTimer, % CtrlDown ? "Action_Ctrl" : "Action", -%Delay%
++Repeat
Return
#If
Action:
Action_Ctrl:
_Repeat := Repeat, Repeat := 0
If A_ThisLabel = Action_Ctrl
send {wheelup}
Else
{
If _Repeat < 2 ;ToolTip lbutton wheelup`, WheelUp прокручен до 2 раз - одно действие.
{
ifwinactive, _class MozillaWindowClass
{
send, {Ctrl down}{Tab}
sleep, 500
send, {left}
}
IfWinExist, _class MozillaWindowClass
WinActivate _class MozillaWindowClass
else
{
run, "C:\Ярлыки\m Google url.lnk"
#Persistent
ToolTip, Firefox запускается`nподожди момент.
SetTimer, RemoveToolTip, 5000
return
RemoveToolTip:
SetTimer, RemoveToolTip, Off
ToolTip
return
}
}
Else ; ToolTip lbutton wheelup`, WheelUp прокручен больше 2 раз - второе действие.
{
; sleep, 350
send, {alt down}{Tab}
sleep, 800
send, {left}
}
return
}
Return
#ifwinactive, _class MozillaWindowClass
^WheelUp::Left
^WheelDown::Right
^LButton:: send {ctrl up}
#if (MouseIsOver("_class TaskSwitcherWnd") && !winactive("_group test"))
!lButton::
MouseGetPos, varx, vary
ControlClick, x%varx% y%vary%, _class TaskSwitcherWnd
send, {alt up}
return
^!lButton::
MouseGetPos, varx, vary
ControlClick, x%varx% y%vary%, _class TaskSwitcherWnd
send, {ctrl up} {alt up}
return
#ifwinactive, _class TaskSwitcherWnd
!lButton:: send, {alt up}
^!lButton:: send, {ctrl up} {alt up}
return
GroupAdd, test, _class TaskSwitcherWnd
MouseIsOver(WinTitle) {
MouseGetPos, , , Win
return WinExist(WinTitle . " _id " . Win)
}