代码之家  ›  专栏  ›  技术社区  ›  GollyJer

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

  •  11
  • GollyJer  · 技术社区  · 14 年前

    Ctrl键 L 要聚焦位置栏并进行搜索或键入URL。

    理想情况下,我可以在任何应用程序和点击 Ctrl键 + L Firefox将被激活,位置栏将聚焦并准备好输入。在步骤中,自动热键脚本。

    我试过这个,但似乎不起作用。据我所知,tilde是“通过”:

    ^l::
    IfWinExist ahk_class MozillaUIWindowClass
    {
        WinActivate
        Send ~^l
    }
    
    2 回复  |  直到 9 年前
        1
  •  20
  •   GollyJer    14 年前

    最后我自己在网上找到了答案 AHK forum .
    它需要使用美元符号修饰符($)。

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


    从自动热键帮助:


    这是我最后使用的完整脚本。如果Firefox已经处于活动状态,Ctrl+L将被简单地传递并像往常一样工作。如果按下Ctrl+L时在Firefox之外,则Firefox被激活,并创建一个新选项卡;准备好搜索了。

    $^l::
    IfWinExist ahk_class MozillaUIWindowClass
    {
      IfWinActive ahk_class MozillaUIWindowClass
      {
        Send ^l
      }
      else
      {
        WinActivate
        Send ^t
      }
    }
    
        2
  •  0
  •   sinkfaze    14 年前

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