情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

AutoHotkey:Windowsキー+Left/Rightが動作しなかった原因

AutoHotkey (26) Windows (485) Windows 10 (255)

Windows 10 にて、AutoHotkeyを使って「Windowsキー+Ctrlキー+k/lキー」を、「Windowsキー+Left/Rightキー」と設定していたものの、これが発動したり発動しなかったりという不安定な状態でした。すこし原因を調べてみたところ、原因がその組合せにあるようだったので、衝突回避が必要ですぐには直せないのですが、直し方のヒントを書き残しておきます。

Windows+Left/Rightの発動が不安定

Windows 8 以降、Windowsキー+Left/Rightといえば、ディスプレイの左半分・右半分にフォーカスのあるウィンドウが張り付くショートカットキーになっています。

これを私は、「^#k::SendInput, #{Left}」および「^#l::SendInput, #{Right}」とAutoHotkeyで設定していました。

しかしながら、Windows 10 にて、これが基本的に発動せず、連打したら発動したり、たまに1発で発動するようになったりと、挙動が不安定でした。

原因?

いろいろSendPlayなどに切り替えるなどして様子を見たのですが、どうやら、Win+Left/Rightの発動に、Winキーを含んだホットキーを指定していたのが原因のようでした。

Win+Ctrlのかわりに、Alt+Ctrlにしたところ、正しく動作しました。

AutoHotkeyでは、このような組合せキーを発動する際には、(たしか)擬似的にまずトリガーとなったModifier(修飾キー、ここではCtrlやWin)をKeyUpしてしまって解除し、発動させたいModifierをKeyDownさせた後でModifier以外のKeyをDown/Upさせた後、Modifierを復元する、という作業を行っています。

このModifierの切り替えを高速で行う過程で、Windows側にちゃんと認識して貰えていないのではないか、と考えられました。

試したい対策

というわけで、Win+Left/Rightの発動に、Winキーを含まない組合せを試したいと思います。

試験的には動きましたが、割り当てたいAlt+Ctrlを割り当てるには、他も変更する必要があるので、ちょっと今すぐにはできません。

またポイントとして、Win+Up(最大化)とWin+Down(最小化/最大化解除)は、ちゃんと動作しています。

コメント(1)

  1. TM
    2016年8月3日(水) 13:26

    Tab + 無変換 + 任意キーで、ある動作を行い、その後Tabキーのみを放して、無変換 + 任意キーで別の動作を行おうとしても、無変換の押下が認識されません。したがって無変換を一度押し直さねばなりません。これを回避する方法はありますか?

新しいコメントを投稿