#HotkeyModifierTimeout

キーボードフックなしでホットキー中でSendコマンドを使用したときに修飾キーの状態を復元しなくなるタイムアウト時間を設定

#HotkeyModifierTimeout Value 

Parameters

引数名説明
Value ミリ秒で指定。
初期値は50。

Remarks

ホットキー中でSendコマンドが実行された場合、押されている修飾キーが擬似的に押し上げ状態にされ、修飾キーが押されていない状態にされてからキーストロークが送信される。
キーボードフックを使用していないと、Sendコマンドが終わったあとに修飾キーがまだ実際に押されているかを知ることができないため、修飾キーを再度押された状態に戻すべきか分からない。
そこで、このコマンドで設定された時間が経過していなければユーザーはまだ修飾キーを押したままであるとみなし、修飾キーを擬似的に再度押し下げ状態にする。

この値を大きく設定しすぎると、ユーザーがすでに修飾キーを離しているのに、再度押し下げ状態にしてしまい、修飾キーが押されたままの状態になってしまうことがある。
この状態になってしまった場合、実際に修飾キーを一度押すことで、押されていない状態に戻すことができる。

この値が小さいと、Sendコマンド実行時に修飾キーが離された状態になってしまうことがあり、修飾キーを押したままSendコマンドを含むホットキーを複数回実行することができなくなってしまう。

キーボードフックを使用している場合、修飾キーが実際に押されているかどうかを取得可能なため、この設定に関係なく正確に修飾キーの状態が復元される。
NT系の場合、#InstallKeybdHook指令で強制的にキーボードフックを有効にできる。
9x系では、SetKeyDelayでキーの入力間隔を短くすることで、誤動作を減らすことができる。

Related

GetKeyState

Example(s)

#HotkeyModifierTimeout 200