11

私は常に Firefox をアクティブにしてから、 Ctrl+Lを押してロケーション バーにフォーカスし、検索を行うか、URL を入力しています。

理想的には、任意のアプリケーションでCtrl+Lを押すと、Firefox がアクティブになり、ロケーション バーがフォーカスされて入力できる状態になります。手順 AutoHotkey スクリプトで。

私はこれを試しましたが、うまくいかないようです。私が読んだことから、チルダは「パススルー」です:

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

2 に答える 2

20

AHKフォーラムで自分でこれに対する答えを得ることになりました。
ドル記号修飾子 ($) を使用する必要があります。

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


AutoHotkey ヘルプから:

($) これは通常、スクリプトが Send コマンドを使用してホットキー自体を構成するキーを送信する場合にのみ必要です。


そして、これが私が最終的に使用した完全なスクリプトです。Firefox が既にアクティブな場合、Ctrl+L は単純にパススルーされ、通常どおりに動作します。Ctrl+L が押されたときに Firefox の外部にある場合、Firefox がアクティブになり、新しいタブが作成されます。検索の準備ができました。

$^l::
IfWinExist ahk_class MozillaUIWindowClass
{
  IfWinActive ahk_class MozillaUIWindowClass
  {
    Send ^l
  }
  else
  {
    WinActivate
    Send ^t
  }
}
于 2010-03-01T16:37:00.383 に答える
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
于 2010-03-01T02:47:34.313 に答える