eclipse+eclipsemonkey+AutoHotkeyでHTMLなどをeclipseのエディタで保存した時にInternetExplorerをリロードする方法

昨日のエントリでは、eclipseのエディタでファイルを保存した際に、Firefoxをリロードさせていましたが、InternetExplorer(以下IE)でも出来るようになったので続編です。
Firefoxをリロードしていた昨日のエントリとの違いは、AutoHotkeyで作るブラウザリロード用exeの違いだけですので、それ以外の部分については昨日のエントリを参照してくださいませ。

IEリロード用exeの概要

昨日のエントリでは、FirefoxにF5キーを送る仕組みをAutoHotkeyで実現していました。これはIEでは動作しません。
試してみると、IEはWindowがActiveでないとF5を受け付けないようでしたので、WindowをActiveにするようにAutoHotkeyスクリプトに追記しています。またそのままだとeclipseのWindowからフォーカスが外れてしまってうれしくないので、IEをリロード後に元にアクティブだったWindowを再度Activeにする処理も加えています。
一瞬EclipseのWindowが非Activeになります。ちょっと美しくないですが。。。これ以外の方法は試せていません。。。

IEリロード用exeをAutoHotkeyで作る

  1. あらかじめ、昨日のエントリを参照してAutoHotkeyをインストールしておきます。
  2. 次のスクリプトをローカルPCにて作ります。
#NoTrayIcon
SetTitleMatchMode, 2
;;; if exist active window, save windowTitle.
WinGetActiveTitle, OriginalActiveWin
#WinActivateForce
WinGet, IE,, Internet Explorer
WinActivate, ahk_id %IE%
ControlSend,, {F5}, ahk_id %IE%
;;; restore active window.
WinActivate, %OriginalActiveWin%
  1. スクリプトをexeにします。
    • 「スタート」ボタン→「AutoHotkey」→「Convert .ahk to .exe」を使います。

    • Sourceにreload_ie.ahkスクリプトファイルを指定します
    • Destinationに、作成するexeファイルパスを指定します(reload_ie.exeとしました)このとき、保存先にデスクトップを指定すると失敗するようですので、パスに日本語が含まれないように保存先を選ぶといいと思います。*1
    • Convertボタンでexeが出来上がります。

eclipsemonkeyスクリプトからreload_ie.exeを呼び出すようにします。

少々汚いですが、reloadFirefox.js の Setting部分に指定しているreload_firefox.exeをreload_ie.exeに書き換えてやればOK。

var Setting = {
targetFileName: "",
targetFileExtension: "html,js,css",
reloadFilefoxExe: "c:\\dev\\reload_ie.exe",
};

ところでAutoHotkey便利

出来ることを調べるために、リファレンスを見てみましたが、ちょっとしたツールを作るのには十分に便利そうです。いいですね!!!

*1:多分日本語が含まれたパスが悪い気がします。半角スペースとか、文字数かもしれませんが、ちゃんと試してないので。。