#UseHook

フックを使用して、すべてまたは一部のキーボードホットキーを実装することを強制します。

#UseHook Setting

パラメータ

Setting

省略したときの初期設定はTrueになります。そうでないときは、次のいずれかのリテラル値を指定します:

True または 1キーボードフックは、ここから次に現れる#UseHook Falseまでの間、すべてのキーボードホットキーを実装するために使われます。

False または 0:ホットキーは、デフォルトの方法(可能であればRegisterHotkey()、そうでなければキーボードフック)を使って実装されます。

備考

このディレクティブをスクリプト内で指定しないときは、Falseに設定しているとみなします。これは、可能な限りキーボードホットキーを実装するために、ウィンドウズAPI関数のRegisterHotkey()が使用されることを意味します。しかし、場合によってはキーボードフックを代わりに使用したほうがホットキーのレスポンスがよくなるかもしれません。

このディレクティブをオンにすると、影響を受ける各ホットキーの定義に$ prefixを使用することと同じになります。

スクリプトの起動時に一度だけ処理される#ディレクティブと同様に、#UseHookはスクリプト内で関数のように配置するべきではありません(つまり、サブルーチン内に含める必要はありません)。代わりに、その影響を受けさせたい最初のホットキーの直前に配置します。

デフォルトでは、キーボードフックを使用するホットキーは、Send機能によってトリガーすることができません。同様に、すべてのマウスホットキーはマウスフックを使用するため、マウスホットキーはClickなどの組み込み機能でトリガーすることはできません。回避策としては、ホットキーの機能に名前を付けて直接呼び出す方法があります。

#InputLevelSendLevelは、Send関数によってトリガーされるホットキーとホットストリングをさらにコントロールすることができます。

他のディレクティブと同様に、#UseHookは条件付きで実行することはできません。

InstallKeybdHookInstallMouseHookListHotkeys#InputLevel

最初の2つのホットキーがキーボードフックを使用するようにします。

#UseHook  ; この時点以降、ホットキーにフックを使用することを強制します。
#x::MsgBox "This hotkey will be implemented with the hook."
#y::MsgBox "And this one too."
#UseHook False
#z::MsgBox "But not this one."