最速インターフェース研究会

はてな使ったら負けかなと思っている

Error: I'm afraid this is the first I've heard of a "htmAutoHotkey" flavoured Blosxom. Try dropping the "/+htmAutoHotkey" bit from the end of the URL.

2006/08/28

AutoHotkeyを使ってFirefoxをリロードするだけのexeファイルを作ってみた

エディタの保存と同時にブラウザを自動でリロードさせると開発がはかどって素晴らしいよ、みたいな話をしてたら軽く派生したわけなんですが

自動リロードで開発をアジャイルにするたった一つの方法! < 31 < July < 2006 < nulog, NULL::something : out of the headphone
http://lowreal.net/logs/2006/07/31/1

hail2u.net - Weblog - CSSファイルを保存すると同時にブラウザをリロード
http://hail2u.net/blog/webdesign/save-css-file-and-reload-browser.html

WSHやRubyからキー操作を送るって方法だと、操作対象のウィンドウをアクティブにしないとキー操作を受け付けてくれなかったりして(もっといい方法あるのかも知れないけど)、一瞬だけどエディタからフォーカスが外れて気持ち悪かったりする。

AutoHotkey使うとバックグラウンドのウィンドウにもキー操作を送ることが可能で、こんな感じのスクリプトを書いて実行すると黙ってFirefoxをリロードすることができる。
http://la.ma.la/misc/ahktool/reload_firefox.ahk

中身はこれだけ。
#NoTrayIcon
SetTitleMatchMode, 2
WinGet, FF,, Mozilla Firefox
ControlSend,, {F5}, ahk_id %FF%

AHKの素晴らしいのは、書いたスクリプトを単体起動可能なexeファイルにコンパイルできること。AHKスクリプトのコンパイルは超簡単で、右クリックしてCompile Scriptを選ぶだけ。これだけでランタイム不要のexeファイルができあがります。189KBとサイズも軽量。ウィルスとか心配な人はAutoHotkeyをインストールして自分でコンパイルすると良いと思います。
http://la.ma.la/misc/ahktool/reload_firefox.exe

後はエディタの保存時にreload_firefox.exeが起動されるようにすればいい。萌ディタだったらこんな感じでsrcfile.javascript.txtなんかに記述する。
f.onSave = function(){
    var wsh = new ActiveXObject("WScript.Shell");
    wsh.Run("c:\\ahktool\\reload_firefox.exe", 0);
}

SleipnirもAPIを使わないでこれと同じ要領でいける。Operaは何故かうまくいかなかった。

参考:AutoHotkeyを流行らせるページ
http://lukewarm.s101.xrea.com/

Posted at: 17:41 | Path: | Permanent link to this entry