AutoHotKey を使用して、シフト キーの機能を変更したいと考えています。この機能については、Steve Losh のブログ エントリ (こちら) で説明されています。具体的には、シフト キーで次の操作を実行したいと考えています。
- LShiftまたはRShiftを 300 ミリ秒以内に押して放し、その間に他のキーが押されていない場合は、それぞれ または を送信します
(
。)
- LShiftとRShiftが 300 ミリ秒以内に一緒に「ロール」された場合( を押すLShift、 を押すRShift、 を離すLShift、 を離すRShiftなど)、
()
またはを送信します)(
。 - Shift キーが不適切に使用された場合(LShiftおよびS、RShiftおよびKなど)、何も起こりません。
300 ミリ秒の要件と「ローリング」機能に問題がありました。具体的には、次のようなホットキー コンボが原因で、キーが離されたときしか検出できないという問題があります。
LShift & 0:: return
これは私が今のところいるところです:
LShift::
Send {LShift Down}
KeyWait, LShift
Send {LShift Up}
if (A_TimeSinceThisHotkey < 300){
if (A_PriorKey = "LShift")
{
Send {)}
}
}
return