Windows7を使い始めて思ったのが、マウスホイールの効きが悪いことがある、ということです。スクロールが遅かったり、なにか引っかかるようだったり。
私の使っているマウスはMSのWireless Optical Mouse 5000で、調べてみると、どうやらこの機種を含めてMS製マウスのいくつかで同様の不具合が発生しています。
原因は、MS製のドライバ(IntelliPoint)がデルタの下限を120から引き下げたことのようです。この変更に対応していないソフトで、ホイールの効きが悪かったり、あるいは全く反応しなかったりするわけです。
いずれ、ドライバかソフトの側で対応されると思いますが、それまでの繋ぎとして、以下のような処置を施しました。
AutoHotKey スクリプト
GroupAdd, MousewheelHandler, ahk_class SomeClass ;ここにクラスを追加 GroupAdd, MousewheelHandler, ahk_class AnotherClass ;クラスはWindow Spyで調べる #IfWinActive ahk_group MousewheelHandler { #MaxHotkeysPerInterval 200 WheelDown::WheelDown WheelUp::WheelUp } return
要するに、AutoHotKeyを通すことで、ホイールを動かしたときの命令を従来型に戻し、古いアプリにも理解できるようにしています。
これで、XPと同じ感じでスクロールするようになりました。
SomeClass等は、実際不具合が起きているソフトのクラス名を調べて書き換えてください。
CapsLockでIMEの切り替え
もう一つ、以前にも書きましたが、私は CapsLock キーで IME を切り替えています。
Mac環境ではKeyRemap4MacBookを、WinではMayuを使っていましたが、MayuはWindows7には未対応とのことで、この機会にこれもAutoHotKeyで書いてみました。二つもキーリマップユーティリティーを常駐させるのもなんですからね。
CapsLock::Send {Alt down}``{Alt up} return
簡単そのものです。ただ、CapsLock を Alt + ` と入れ替えていることからおわかりの通り、これは英語キーボードの場合です。日本語キーボードだと、CapsLockの刻印のあるキーを押下しても、実際には「英数」という日本語環境独自のキーコードが送られ、実際にCapsLockするためにはShiftキーを押しながらでなければいけない、という事情がありますので、結構手こずるかも知れません。
尚、`(バッククォート)はAutoHotKeyでは特別なエスケープ文字なので、上のように二重にしなければなりません。
癖のある文法
AutoHotKey、非常に強力なのですが、噂通り文法には癖がありますね。
例えば、つい、
if condition { expression }
のように書いてしまいがちですが、AutoHotKeyではこれは文法エラーなのだそうで、
if condition { expression }
と書かなければいけません。
—
関連記事:
【パッチ】Windows7でマウスホイールの効きが悪い場合