1 (изменено: villla777, 2013-09-09 09:25:13)

Тема: AHK:Расширить функционал СКМ в Firefox

Когда закрываешь, открываешь много вкладок бывает надоедает каждый раз лазить в панель табов. Может кто сможет сделать скрипт чтобы при коротком клике по колесику оставить как по дефолту, при удержании 1сек. закрывалась текущая вкладка, при двойном клике по колесику переключалась на  домашнюю(она у меня всегда открыта, чтобы не грузить заново с 200 визуальными закладками долго)  Домашняя - chrome://desktop/content/desktop.html если вдруг нужно. Порядок нажатий и действий может быть и другим, не критично. Спасибо.

2 (изменено: villla777, 2013-09-11 21:28:23)

Re: AHK:Расширить функционал СКМ в Firefox

Может хоть здесь кто поможет, читал документацию, экспериментировал, никак. По одинарному клику работает как надо, а вот чтобы срабатывало, один по удержанию 1сек., другой двойным кликом, и остались дефолтные функци, тяму не хватает. Нужно для открытия и закрытия вкладок в Firefox.

Mbutton::
If WinActive("ahk_class MozillaWindowClass")
Send, ^{vk73}
Exit

Mbutton::
if WinActive("ahk_class MozillaWindowClass")
Send, ^{vk54}
Exit

3

Re: AHK:Расширить функционал СКМ в Firefox

А расширениями пользоваться если, например FireGestures?

4

Re: AHK:Расширить функционал СКМ в Firefox

Zohann пишет:

А расширениями пользоваться если, например FireGestures?

Есть несколько причин, не устанавливать ещё одну нагружающую браузер примочку, плюс, жест можно сделать  не во всех окнах.

5

Re: AHK:Расширить функционал СКМ в Firefox

Понятно, вот держи:

Mbutton::
If WinActive("ahk_class MozillaWindowClass")
    {
    n += 1
    SetTimer, KeyWin, 1000
    If n = 2
        MsgBox Открываю домашнюю страницу
    }
    
Return

KeyWin:
    n := 0    
    SetTimer, KeyWin, Off
    GetKeyState, state, MButton, P
    If state = D
        MsgBox Закрываю вкладку    
Return

6 (изменено: villla777, 2013-09-11 21:27:38)

Re: AHK:Расширить функционал СКМ в Firefox

Zohann
Код работает замечательно, но почему то пропала дефолтная функция быстрой прокрутки по короткому клику на колёсико, не появляется кружок. Может я не правильно что в код подставил, глянь пожалуйста.

Mbutton::
If WinActive("ahk_class MozillaWindowClass")
{
    n += 1
    SetTimer, KeyWin, 500
    If n = 2
Send, ^{vk54}
Exit

MsgBox Открываю домашнюю страницу
    }
        
Return

KeyWin:
    n := 0    
    SetTimer, KeyWin, Off
    GetKeyState, state, MButton, P
    If state = D
Send, ^{vk73}
Exit
    
MsgBox Закрываю вкладку 

Return

7

Re: AHK:Расширить функционал СКМ в Firefox

villla777, ознакомьтесь с этой темой, отредактируйте свои посты.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK:Расширить функционал СКМ в Firefox

villla777 пишет:

Код работает замечательно, но почему то пропала дефолтная функция быстрой прокрутки по короткому клику на колёсико, не появляется кружок.

Вот про дефолтную функцию в ТЗ не было сказано))
Проверить не могу, попробуй так: $Mbutton::

9 (изменено: serzh82saratov, 2013-09-12 17:22:09)

Re: AHK:Расширить функционал СКМ в Firefox

Zohann пишет:

Вот про дефолтную функцию в ТЗ не было сказано))

villla777 пишет:

чтобы при коротком клике по колесику оставить как по дефолту

На скорую руку наверное перемудрил:


#If WinActive("ahk_class OperaWindowClass") 
Mbutton::  
    SetTimer IsPress2, Off
    If (A_PriorHotkey = "Mbutton" && A_TimeSincePriorHotkey < 250)
    {
        SetTimer IsPress, Off
        ToolTip Открываю домашнюю страницу
        Return
    } 
    SetTimer IsPress, -250  
    Return
    
    IsPress:
        If GetKeyState("Mbutton", "P")
             SetTimer IsPress2, -750
        Else
             SendInput {Mbutton}  
        Return
    
    IsPress2:
        If GetKeyState("Mbutton", "P")
             ToolTip Закрываю вкладку
        Else
             SendInput {Mbutton} 
        Return
#If

Задержки срабатывания 250 мсек "как по дефолту" избежать невозможно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10 (изменено: villla777, 2013-09-11 22:44:26)

Re: AHK:Расширить функционал СКМ в Firefox

Zohann
$Mbutton:: не помогло.
serzh82saratov
Извините я плохо в этом разбираюсь, не смог даже разобраться куда правильно эти две команды подставить в ваш код чтобы срабатывало, не подскажите.

 Send, ^{vk54}
Exit  - открыть

Send, ^{vk73}
Exit  - закрыть

11

Re: AHK:Расширить функционал СКМ в Firefox

куда правильно эти две команды подставить в ваш код

А что тут значит Exit?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

12

Re: AHK:Расширить функционал СКМ в Firefox

А что тут значит Exit?

Если б я знал, в каком то коде было, да и в код от Zohann так подставлял, вроде работает.

13

Re: AHK:Расширить функционал СКМ в Firefox

#If WinActive("ahk_class OperaWindowClass") 

Тут заменить окно

ToolTip Открываю домашнюю страницу
и
ToolTip Закрываю вкладку 

заменить на свои действия.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

14

Re: AHK:Расширить функционал СКМ в Firefox

serzh82saratov
А я и не заметил что для Оперы, теперь работает, спасибо. А время нажатия как я понял меньше 250 уже не выставить. Спасибо вам и Zohann что откликнулись, уж не надеялся что с чайником тут будут возиться.

15

Re: AHK:Расширить функционал СКМ в Firefox

А время нажатия как я понял меньше 250 уже не выставить.

Выставляй как удобно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16

Re: AHK:Расширить функционал СКМ в Firefox

villla777 пишет:

$Mbutton:: не помогло.

Вставь Send {Mbutton} перед первым Return.

17

Re: AHK:Расширить функционал СКМ в Firefox

Zohann
Где то около, при коротком щелчке появился кружок и срабатывает двойной клик, а вот удержание не работает.
Код такой.

Mbutton::
If WinActive("ahk_class MozillaWindowClass")
{
    n += 1
    SetTimer, KeyWin, 550
    If n = 2
Send, ^{vk54}
}        
Send {Mbutton}Return


KeyWin:
    n := 0    
    SetTimer, KeyWin, Off
    GetKeyState, state, MButton, P
    If state = D
Send, ^{vk73}
Return



18 (изменено: Zohann, 2013-09-12 13:17:56)

Re: AHK:Расширить функционал СКМ в Firefox

Send {Mbutton}
Return

Рекомендую справку про AHK почитать, там практически все есть, я по ней и учился.

19

Re: AHK:Расширить функционал СКМ в Firefox

Zohann пишет:
Send {Mbutton}
Return

Рекомендую справку про AHK почитать, там практически все есть, я по ней и учился.

В том то и дело что так не срабатывало вообще, значит что то я в коде накосячил, коль с неправильной записью хоть двойной клик работал.  Ну в этом мне уже не разобраться. Читал я справку, и не один раз, беда в том что способности у людей разные, переназначить клавиши ещё смогу, а по сложнее уже плыву. Ладно, спасибо и на этом.

20

Re: AHK:Расширить функционал СКМ в Firefox

serzh82saratov
Код работает нормально, но есть маленькое неудобство, уж слишком быстро нужно делать двойной клик, чуть не успел и по новой клацай, и так несколько раз. Теми таймерами что есть, у меня регулируется только время срабатывания при удержании кнопки. Во всяком случае за пол дня так и не смог настроить на более медленный двойной клик. Может можно что то сделать, может параметр какой добавить или ещё что. Спасибо.

#If WinActive("ahk_class MozillaWindowClass") 
Mbutton::  
    If (A_PriorHotkey = "Mbutton" && A_TimeSincePriorHotkey <= 250)
    {
        SetTimer IsPress, Off
        SetTimer IsPress2, Off
Send, ^{vk54}
        
Return
    } 
    SetTimer IsPress, -50  
    Return
    
    IsPress:
        If GetKeyState("Mbutton", "P")
             SetTimer IsPress2, -150
        Else
            SendInput {Mbutton}  
        Return
    
    IsPress2:
        If GetKeyState("Mbutton", "P")
Send, ^{vk73}             

Else
            SendInput {Mbutton} 
        Return
#If

21

Re: AHK:Расширить функционал СКМ в Firefox


#If WinActive("ahk_class OperaWindowClass") 
Mbutton::  
    SetTimer IsPress2, Off
    If (A_PriorHotkey = "Mbutton" && A_TimeSincePriorHotkey < 250)
    {
        SetTimer IsPress, Off
        ToolTip Открываю домашнюю страницу
        Return
    } 
    SetTimer IsPress, -250  
    Return
    
    IsPress:
        If GetKeyState("Mbutton", "P")
             SetTimer IsPress2, -750
        Else
             SendInput {Mbutton}  
        Return
    
    IsPress2:
        If GetKeyState("Mbutton", "P")
             ToolTip Закрываю вкладку
        Else
             SendInput {Mbutton} 
        Return
#If

villla777
Неужели вам неинтересно понять что тут к чему?
Сами нагородили какой-то огород:


A_TimeSincePriorHotkey <= 250

SetTimer IsPress, -50 

SetTimer IsPress2, -150

и хотите узнать у других зачем.
Если вам надо что-то изменить, и не надо вникать в суть, то спросите как это сделать.
Лично я тут теперь ничего непонимаю.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

22

Re: AHK:Расширить функционал СКМ в Firefox

Абстрагируясь от окна, проведите такую отладку:


Mbutton::  
    SetTimer IsPress2, Off
    If (A_PriorHotkey = "Mbutton" && A_TimeSincePriorHotkey < 250)
    {
        SetTimer IsPress, Off
        ToolTip Открываю домашнюю страницу
        Return
    } 
    SetTimer IsPress, -250  
    Return
    
    IsPress:
        If GetKeyState("Mbutton", "P")
             SetTimer IsPress2, -750
        Else
            ToolTip SendInput {Mbutton}  
        Return
    
    IsPress2:
        If GetKeyState("Mbutton", "P")
             ToolTip Закрываю вкладку
        Else
            ToolTip SendInput {Mbutton} 
        Return

и скажите что не подходит.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

23 (изменено: villla777, 2013-09-13 02:23:27)

Re: AHK:Расширить функционал СКМ в Firefox

Странно, я только команды подставлял и время изменял чтобы быстрее срабатывало при зажатой кнопке, а код почему то другой стал. Ладно, может что не так скопировал. По поводу не интересно, оно конечно интересно своими руками сделать, вот только после 50 как то всё это туго даётся, вторую строчку прочитал, а что было в первой забыл. Утрирую немножко, но всё же. А абстрагироваться и отладить для меня вообще тёмный лес, что отладить, как отладить. Вставил в код только свои команды, правильно, или нет, не знаю, код работает, открывает, закрывает, вот только двойной клик нужно производить очень быстро, потому как если чуть медленнее(как обычно делаю в системе) код уже не срабатывает. Хотелось только это доработать если можно и всё, остальное устраивает.

#If WinActive("ahk_class MozillaWindowClass") 
Mbutton::  
    SetTimer IsPress2, Off
    If (A_PriorHotkey = "Mbutton" && A_TimeSincePriorHotkey < 250)
    {
        SetTimer IsPress, Off
        Send, ^{vk73}
        Return
    } 
    SetTimer IsPress, -250  
    Return
    
    IsPress:
        If GetKeyState("Mbutton", "P")
             SetTimer IsPress2, -750
        Else
             SendInput {Mbutton}  
        Return
    
    IsPress2:
        If GetKeyState("Mbutton", "P")
        Send, ^{vk54}
        Else
             SendInput {Mbutton} 
        Return
#If

P.S. Для чего так нужна была эта функция, да чисто старческая лень, не скакать каждый раз в панель табов и обратно, нажал на мышку - закрыл вкладку, нажал ещё - открыл, никуда не дергаясь мышкой.

24 (изменено: serzh82saratov, 2013-09-13 09:42:57)

Re: AHK:Расширить функционал СКМ в Firefox

вот только после 50 как то всё это туго даётся

Похвально что в таком возрасте вообще есть интерес.

P.S. Для чего так нужна была эта функция, да чисто старческая лень, не скакать каждый раз в панель табов и обратно, нажал на мышку - закрыл вкладку, нажал ещё - открыл, никуда не дергаясь мышкой.

Для чего - не интересно, интересна только сама задача, и методы её решения.

Странно, я только команды подставлял и время изменял чтобы быстрее срабатывало при зажатой кнопке, а код почему то другой стал.

Тут надо понимать для чего эти таймеры. Например SetTimer IsPress, -50 , разве физически возможно сделать двойное нажатие за 50 мсек?
И тогда в строке A_TimeSincePriorHotkey < 250 должно быть то же число.

А абстрагироваться и отладить для меня вообще тёмный лес, что отладить, как отладить.

Тут наоборот всё просто, берёте не меняя код из 22 поста. Нажимаете на Mbutton который работает независимо от окна, и смотрите ToolTip. Например ToolTip SendInput {Mbutton} в реале будет значить нажатие Mbutton. Если неподходят значения таймеров, то говорите что изменить.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

25 (изменено: serzh82saratov, 2013-09-13 10:29:21)

Re: AHK:Расширить функционал СКМ в Firefox

Ладно, ещё проще запусти этот код. В Mozilla нажимай и смотри ToolTip. Изменяй Pause := 350 как надо для двойного клика (чем больше, тем медленнее). Потом просто замени все 3 слова ToolTip на SendInput и заработает как тебе надо.


Pause := 350
 
#If WinActive("ahk_class MozillaWindowClass") 
Mbutton::  
    SetTimer IsLong, Off
    SetTimer IsShort, Off
    If (A_PriorHotkey = "Mbutton" && A_TimeSincePriorHotkey < Pause) 
        ToolTip ^{vk73}
    Else
        SetTimer IsShort, -%Pause%
    Return
    
    IsShort:
        If GetKeyState("Mbutton", "P")
            SetTimer IsLong, % "-" 1000-Pause
        Else
            ToolTip {Mbutton}  
        Return
    
    IsLong:
        ToolTip % GetKeyState("Mbutton", "P") ? "^{vk54}" : "{Mbutton}" 
        Return
#If
+ открыть спойлер


Pause := 350
 
 
Mbutton::  
    SetTimer IsLong, % IsLong := "Off"
    SetTimer IsShort, Off
    If (A_PriorKey = "Mbutton" && A_TimeSincePriorHotkey < Pause) 
        ToolTip ^{vk73}
    Else
        SetTimer IsShort, -%Pause%
    Return
    
    IsShort:
        If GetKeyState("Mbutton", "P")
            SetTimer IsLong, % "-" IsLong := 1000-Pause
        Else
            ToolTip {Mbutton}  
        Return
    
    IsLong:
        IsLong := "Off"
        ToolTip % GetKeyState("Mbutton", "P") ? "^{vk54}" : "{Mbutton}" 
        Return
        
Mbutton Up::  
    SetTimer IsLong, Off 
    If IsLong <> Off
        ToolTip {Mbutton}
    Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

26

Re: AHK:Расширить функционал СКМ в Firefox

Всё, настроил как надо. Тему можно закрывать. Впредь буду думать куда лезу. Спасибо за помощь.