コマンド使用後にCtrlキーが押しっぱなしになっている事があります。
^#j::Send,{Down}
この押しっぱなしを避ける方法はないでしょうか。
今は、もう一度Ctrlを押すことで、押しっぱなしを解除しています。
↓というのはソース上部に書いてあります。
#InstallKeybdHook
#UseHook
windowsの"固定キー機能"が有効になっているためではないでしょうか。
vistaの場合ですが、
コントロールパネル - コンピュータの簡単操作センター - キーボードを使いやすくします - 固定キー機能を有効にする - 固定キー機能のセットアップ
に、Ctrl、Alt、Shift、Windowsロゴキーを2回続けて押すとそのキーをロックする
という項目があります。
もしくは、「固定キー機能のセットアップ」にある "Shiftキーを5回押すと固定キー機能を有効にする"あたりも関係しているかも。
他に考えられるのはAutoHotkeyスクリプトの記述に問題があるとか。
私自身はそういうトラブルには見舞われていないので、コピペになりますが…
AutoHotkey スレッド part14
Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
A9:AHKが原因の場合とそうでないときがある
○AHKが原因の場合
AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
例) ^W::Send, {w 30}
これを回避するためには、以下の方法をとればよい:
・キー押下状態を常に監視するキーボードフックを導入する(#InstallKeybdHook)
・キー発効のコマンドを SendInput, SendPlay にする(SendModeで一括指定でもよい)
・上記二つが出来ない場合は、SetKeyDelay, 0 等としてキー発効をなるべく早く行うか、
#HotkeyModifierTimeout で修飾キー押下のタイムアウト値を長めに設定をする
なお、他のキー発効を行うツール(クリップボードユーティリティやマウスジェスチャツールなど)が、
発効する修飾キーが原因となる場合もあるが、フックの導入でほぼ解決出来ると思われる。
○AHK以外が原因の場合:
環境により異なるので何とも言えないが、以下のような環境の場合発生する事が報告されている。
・ Logicool(Logitec)のマウスユーティリティSetPoint(verによっては問題ない事もあるとか)
・VirtualPC, WMWare, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている
残念ながら「固定キー機能」は有効になっていなかったので違うようです。
2012/07/09 01:28:59スクリプトのどこかに問題があるんですかね。
他の人は問題が起きてないんでしょうか。
「AUtoHotkeyいいな~」と思ってるのですが、たまにCtrlなんかが押しっぱなしになって萎えます。