1 (изменено: Kamagi, 2011-06-17 16:39:40)

Тема: AHK: Действие по нажатию СКМ над ссылкой в Firefox

Приветствую!

Я использую модифицированный под себя скрипт одного товарища с форума.
При нажатии средней кнопки мыши где угодно в Firefox у меня закрывается вкладка.
Хотелось бы, чтобы если курсор мыши находится над ссылкой,
то эта ссылка открывалась бы в новой вкладке при нажатии СКМ (как
в Firefox по умолчанию). Излазил много чего, и, честно говоря, безрезультатно.

Mbutton::
   IfWinActive["Firefox"]
    Send, ^{vk57}
Exit

Можно здесь что-нибудь сделать?

UPD:

Вопрос был решен. Я сделал два файлика со скриптом - один ahk (нужна программа),
другой .exe - который можно ставить на компьютер без установки самой программы.

Сылка на архив со скриптом AHK
Ссылка на экзешник

Скрипт создавался под Windows7 с Firefox4

ЛКМ+ПКМ = Forvard (Вперед) в Firefox4
ПКМ+ЛКМ = Back (Назад) в Firefox4
ПКМ+WheelUp = Alt+Tab (переключение между вкладками в Firefox4)
ПКМ+WheelDown = Ctrl+Tab (переключение между задачами в Win7)
СКМ в Firefox4 = закрывает вкладку
СКМ в среде Windows7 = закрывает окно/программу

Окончательный вариант скрипта выглядит так:

Menu, TRAY, Icon, Mouse.ico

RButton::
  if GetKeyState("LButton", "P")
  {
    Click up
    Send, !{right}        
    Quit=1
  }
  else Send, {RButton}
Exit

Mbutton::
   If WinActive("ahk_class MozillaWindowClass")
    Send, % A_Cursor = "Unknown" ? "{MButton}" : "^{vk57}"    
   Else
    Send, !{F4}
Exit

RButton & Lbutton:: 
   If WinActive("ahk_class MozillaWindowClass")
    Send, !{left} 
Exit
 
RButton & WheelUp::  AltTab

RButton & WheelDown:: Send, ^{Tab}

2

Re: AHK: Действие по нажатию СКМ над ссылкой в Firefox

IfWinActive["Firefox"] — неверный синтаксис, условие не работает, Ctrl + W посылается в любом случае. Какой версией AHK пользуешься?

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

3

Re: AHK: Действие по нажатию СКМ над ссылкой в Firefox

v1.1.00.00 под Win7

Поменял на вот такое:

Mbutton::
   If WinActive("ahk_class MozillaWindowClass")
    Send, ^{vk57}
   Else
    Send, !{F4}
Exit

Проверил в Блокноте - не шлет вроде.
Оказалось очень удобно закрывать окна средней клавишей,
а если я нахожусь в Firefox, то закрывается только одна вкладка.

Но вопрос с нажатием СКМ на ссылке в Firefox я пока не решил.

4

Re: AHK: Действие по нажатию СКМ над ссылкой в Firefox

Kamagi пишет:

If WinActive("ahk_class MozillaWindowClass")

Насколько я знаю, класс окна в FF называется MozillaUIWindowClass. Или у тебя не так?

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

5

Re: AHK: Действие по нажатию СКМ над ссылкой в Firefox

Window Spy выдает следующее: ahk_class MozillaWindowClass
И скрипт корректно работает, хотя на форумах я встречал именно MozillaUIWindowClass

6

Re: AHK: Действие по нажатию СКМ над ссылкой в Firefox

Странно, то ли у тебя FireFox какой-то другой, то ли Window Spy. У меня скрипт в твоём варианте в FF тоже посылает !{F4}.

http://s52.radikal.ru/i136/1106/24/171f73a47c99.png

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

7

Re: AHK: Действие по нажатию СКМ над ссылкой в Firefox

Ну ладно, можно так, ориентируясь на форму курсора, когда он над ссылкой:

SetTitleMatchMode, 2
Mbutton::
   If WinActive("Mozilla Firefox")
    Send, % A_Cursor = "Unknown" ? "{MButton}" : "^{vk57}"
   Else
    Send, !{F4}
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Действие по нажатию СКМ над ссылкой в Firefox

Все прекрасно работает! Большое спасибо

Конечный работоспособный код у меня выглядит так:

SetTitleMatchMode, 2

Mbutton::
   If WinActive("ahk_class MozillaWindowClass")
    Send, % A_Cursor = "Unknown" ? "{MButton}" : "^{vk57}"    
   Else
    Send, !{F4}
Exit

Мой скриншот:

http://s57.radikal.ru/i155/1106/98/1f00d7c2669a.jpg

9

Re: AHK: Действие по нажатию СКМ над ссылкой в Firefox

А, я вообще-то не обновил FF до последней версии (не все приложения старые с ним работают), может, класс поменяли. В твоём варианте SetTitleMatchMode, 2 не нужно.

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