web-dev-qa-db-ja.com

シングルキーホットキーだけでなく、AutoHotKeyキーシーケンス

私は愚かではありません...本当に。キーシーケンスをどのようにマッピングしますか(例: CtrlQ 、 F)AutoHotKeyで。

私が持っている CtrlQ ダウン:

^q::

私も持っています F

f::

ヘルプファイルの例は、2つのキーストロークを連続して実行する方法も示しています。

Numpad0 & Numpad1::

しかし、それはうまくいきません:

^q & f ::

またはこれらのいずれか:

LCtrl & q & f::
^q & ^f::
^q^f::
^qf::

それらのキーの1つが、何かをトリガーするキーシーケンスを実行するにはどうすればよいですか? Ctrl キー?代わりにHOTSTRINGを使用することを検討しましたが、含める方法がわかりませんでした。 Ctrl キャラクター、その文脈で!

34
Joshua

了解しました。答えは次のようです。

^q::
Input Key, L1
if Key=f
...some code here...
return
30
Joshua

誰かが似たようなものを探しているが、実際に欲しい場合 CtrlQCtrlF およびonlyif Ctrl 全体で開催されます(したがって、一部の人にとっては、これは次のように見えるかもしれません CtrlQF)、それを行う方法は次のとおりです。

$Ctrl::Send {Ctrl Down}
$Ctrl UP::
    ChordIsBroken := True
    Send {Ctrl Up}
    Return
^q::
    ChordIsBroken := False
    Input, OutputVar, L1 M
    If (!ChordIsBroken && Asc(OutputVar) = 6)
    {
        MsgBox "Hello, World!"
    }
    Else
    {
        SendInput %OutputVar%
    }
    Return

私の説明については https://superuser.com/a/725303/145431 を参照してください。

5
Andrew Cheong

または、次のように実行できます。

q & f::
    if GetKeyState("Control") {
        ; Do something
        return
    }
    return

これは、上記のように入力キーL1を使用するよりも少し読みやすいと思います。

2
Ciantic

これがキャッチ CTRL+F。もし Q その瞬間に押し下げられると、コードが起動します。

^f::
    If GetKeyState("q", "p") {
        MsgBox test
    } Else {
        Send ^f
    }
return
1
lance