Как мога да предам прихванатия ключ към приложение в autohotkey

Постоянно активирам Firefox, след което натискам Ctrl+L, за да фокусирам лентата за местоположение и да направя търсене или да напиша URL.

В идеалния случай мога да съм във всяко приложение и да натисна Ctrl+L и Firefox ще се активира с фокусирана лента за местоположение и готова за въвеждане. В стъпки AutoHotkey скриптове.

Пробвах това и изглежда не работи. От това, което прочетох, тилда е "преминаване":

^l::
IfWinExist ahk_class MozillaUIWindowClass
{
    WinActivate
    Send ~^l
}

person GollyJer    schedule 28.02.2010    source източник
comment
Току-що намерих това около 30 секунди преди да публикувам същия основен въпрос. Благодаря!   -  person asfallows    schedule 11.01.2012


Отговори (2)


В крайна сметка получих отговора на този въпрос във форума на AHK.< br> Изисква използването на модификатора на знака за долар ($).

$^l::
IfWinExist ahk_class MozillaUIWindowClass
{
    WinActivate
    Send ^l
}  


От помощта на AutoHotkey:

($) Това обикновено е необходимо само ако скриптът използва командата Send, за да изпрати клавишите, които съставляват самия клавиш за бърз достъп, което в противен случай може да доведе до самозадействане.


И ето пълния скрипт, който в крайна сметка използвах. Ако Firefox вече е активен, Ctrl+L просто се предава и се държи както обикновено. Ако е извън Firefox, когато се натисне Ctrl+L, Firefox се активира и се създава нов раздел; готов за търсене.

$^l::
IfWinExist ahk_class MozillaUIWindowClass
{
  IfWinActive ahk_class MozillaUIWindowClass
  {
    Send ^l
  }
  else
  {
    WinActivate
    Send ^t
  }
}
person GollyJer    schedule 01.03.2010

Не мисля, че тилдата се прилага в този случай, но Send може да изпрати ключовете по-бързо, отколкото всъщност се активира прозорецът, така че нещо подобно може да е по-добро:

SetKeyDelay, 10, 10 ; adds 10ms delay between and during keystrokes
IfWinExist, ahk_class MozillaUIWindowClass
{
   WinActivate,
   WinWaitActive, ; waits until window is active
   Send, ^l
}
return
person sinkfaze    schedule 01.03.2010