如何将截获的密钥传递给autohotkey中的应用程序

时间:2010-02-28 01:23:43

标签: keyboard-shortcuts autohotkey ctrl

我不断激活Firefox,然后点击 Ctrl + L 来聚焦位置栏并进行搜索或输入网址。

理想情况下,我可以在任何应用程序中点击 Ctrl + L ,激活Firefox并关闭位置栏并准备输入。在步骤AutoHotkey脚本。

我试过这个,似乎没有用。从我所读到的,代字号是“传递”:

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

2 个答案:

答案 0 :(得分:19)

结束AHK forum,我自己得到了答案 它需要使用美元符号修饰符($)。

$^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
  }
}

答案 1 :(得分:0)

我不认为代字号适用于此实例,但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