フラッシュの右クリックが効かない問題の話・オープン後対応編

ニコリコムの掲示板のほうでもAutoHotkeyを用いて右クリックをどうにかしようとしています。
僕の使っているスクリプトはあれとはちょっと違うのでここにさらしてみることにします。個人的な趣味として対象となるプログラムの制限を掛けてない状態で右クリック使用不可なんてフックを掛けたくないのです。


まず僕の使っている環境は以下のものになっております。

  • OS:Windows XP Pro SP2
  • ブラウザ:Sleipnir 2.49(IEコンポネーント使用)
  • IE:バージョン6.0.2
  • フラッシュ:9.0
  • AutoHotoKey:v1.0.45.04


そんでもって書いたスクリプト

#IfWinActive ahk_class SleipnirMainWindow,nikoli.com/swf/
+RButton::RButton
RButton::+LButton

一応解説をしておきますと「ahk_class SleipnirMainWindow」はSleipnirのトップウインドウのクラスです。
これをつけておくことによってSleipnirの上でしかこのフックが効かないようになります。
このクラス名は当然ブラウザによって変わってくるのですが、このウインドウクラスはAutoHotoKeyの「Window Spy」を使うことによって調べることができます。
「Window Spy」を立ち上げてニコリコムの問題をクリックするとニコリコムの問題を表示しているウインドウの情報が表示されます。
その中の上から3行目あたりに

ahk_class SleipnirMainWindow

のように表示されているので、これを指定すればよいかと思います。
次の「nikoli.com/swf/」はタイトルバーに表示されている文字列にnikoli.com/swf/が含まれている場合のみ有効にするということです。
なので、この設定だとタイトルにnikoli.com/swf/が含まれるページを開いているときには常にこの設定が働いてしまいます。
また次の行の「+RButton::RButton」は通常の右ボタンの機能を殺したくなかったのでシフトを押しながら右クリックをした場合に通常の右クリックの動作を行うようにする設定です。


スクリプトを書いたファイルに.ahkの拡張子をつけて保存し、ダブルクリックするとAutoHotoKeyの上で書いたスクリプトが動作します。
一応お試し問題とメンバー用の問題で確認したけど大丈夫っぽい。
なので、「Convert .ahk to .exe」を用いて.exeに変更します。
生成したexeをスタートアップに放り込んでおけば起動後に勝手に立ち上がって有効になるものと思われます。
普通、スタートアップにはexe本体を入れないでショートカットを入れとくものなのですがちょっと手抜き。
これで動いてくれるといいな。