autohotkeyで、たとえば以下のようなコマンドを登録しておいて使うと、

コマンド使用後にCtrlキーが押しっぱなしになっている事があります。

^#j::Send,{Down}

この押しっぱなしを避ける方法はないでしょうか。
今は、もう一度Ctrlを押すことで、押しっぱなしを解除しています。

↓というのはソース上部に書いてあります。
#InstallKeybdHook
#UseHook

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/07/15 16:20:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Cherenkov No.1

回答回数1504ベストアンサー獲得回数493

ポイント34pt

windowsの"固定キー機能"が有効になっているためではないでしょうか。

vistaの場合ですが、
コントロールパネル - コンピュータの簡単操作センター - キーボードを使いやすくします - 固定キー機能を有効にする - 固定キー機能のセットアップ
に、Ctrl、Alt、Shift、Windowsロゴキーを2回続けて押すとそのキーをロックする
という項目があります。

もしくは、「固定キー機能のセットアップ」にある "Shiftキーを5回押すと固定キー機能を有効にする"あたりも関係しているかも。

他に考えられるのはAutoHotkeyスクリプトの記述に問題があるとか。

id:tetlis

残念ながら「固定キー機能」は有効になっていなかったので違うようです。
スクリプトのどこかに問題があるんですかね。

他の人は問題が起きてないんでしょうか。

「AUtoHotkeyいいな~」と思ってるのですが、たまにCtrlなんかが押しっぱなしになって萎えます。

2012/07/09 01:28:59
id:taroe No.2

回答回数1099ベストアンサー獲得回数132

ポイント33pt

SendMode Input
を試してみては?

http://d.hatena.ne.jp/mitsc1729/20120310/1331332107

id:u_u-zzz No.3

回答回数93ベストアンサー獲得回数9

ポイント33pt

私自身はそういうトラブルには見舞われていないので、コピペになりますが…

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, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません