実に実に「ランチャ使えばいいじゃん」 といわれそうな話題だと覚悟の上だが、Firefoxの画面を一発でキャプしてそれをIrfanviewで 確認するという動作を、Firefoxから一発で行う方法を紹介する。

こんな感じの挙動になる

具体的に何に使えるのかというと人さまざまだろうし、単純にキャプ画面をすぐトリミング(画像をきりとること) するからってのが多いのだろうが、僕の一番の目的は、左右反転がすぐ出来ることにある。 というのも、絵チャットで絵をかいていると、「保存するほどの絵ではないけれども、自分の絵が何が間違ってるのかを 確認するために絵を左右反転して確認したい」というようなことがあるのだ。

意外とこういう利用してる人は少ないのだろうか?

なんにしても、OPERAで出来るんなら出来るはずだという根拠のない 理由からがんばって探したわけだが、基本的にどうも、firefoxはアクションがこなせないようである。 (例えば今見てるURLをsleipnirやIEなどのブラウザで開くように指示しながらアプリケーションを起動するといった 類のもの)なお、SleipnirはLaunchExtentionを使うことでアクションが自在に登録できる。

必要なもの

FirefoxとIrfanviewはインストール済みとして話を進める。

  1. Custom Buttons2をインストールする

    なぜか本家の方で説明

    2008年10月現在、最新バージョンは2.0.7.6なので日本語版で良いだろうから こちらのインストールスクリプトからインストールして、Firefoxを再起動する (以下、target="_blank"は非推奨につき入れてないので、今のウインドウと別の ウインドウで開くのは自分でやってね)

    →ふと今日は…Custom Buttons2日本語化

    一応本家も乗せておくので最新版がでてないかはここでチェックしてください。つか別に英語でも 問題ないと思いますけどね。

    FirefoxアドオンCustom Buttons2

  2. Irfanview用のアイコンダウンロード

    まぁ別にアイコンなんて何でもいいのでしょうが、一応必要になるのでそれらしいのを持っておきましょう。

    viptop@wikiデスクトップ素材保管庫

    ここの「有難屋のアイコン置き場? 」からダウンロードして解凍してください。

    適当に、C:\とかに「work」とかなんとかフォルダつくって、解凍したものをぶっこんでおきましょう。 別にどこでもいいです。僕は他のプログラムから参照するファイルはworkフォルダをつくってまとめるようにしてます。

  3. 新しいボタンを作る

    ところでCustom Button2をインストールしたあと、ちゃんとFirefoxを再起動しましたか? 進むとか戻るとかのあるツールバーどこでもいいです、適当な隙間を右クリックしましょう。

    日本語版のものではこうなる。英語版だとnew buttonかな?場所によってはものすごく長い アイコン付のメニューが出るけど、同じように「新しいボタンの追加」を押します

    するとメニューがでてきて、新しいボタンの追加(英語だとcreate new buttonとかそんなの)が出るはずなんで これをクリックします。

  4. ボタンのタイトルとアイコンを指定する

    するとこんなウインドウが出るはずです。

    別にタイトルはなんでもいいですが、今回はIrfanviewのボタンを作るんだから、「Irfanview」とでも 名前のところに入れときましょう。そして画像のところは、検索をクリックして、先ほど解凍してどっかの フォルダにおいておいた中から、iview.icoを選びます。ICOというフォルダの中にあるはずです。

  5. 初期化コードにコマンドをぶち込む

    初期化コードってなタブを選んでください。なんか/*初期化コード*/って描いてるフォームがでるでしょう。 別にそれは消そうがけすまいがどうでもいいです。次の行から以下のコードを丸々コピペしてください

    var label='irfan view';
    var img=this.image;
    var path='C:/Program Files/IrfanView/i_view32.exe';
    //var path='c:/windows/explorer.exe';
    var args='/capture=1';
    
      this.label=label;
      this.setAttribute('oncommand','this.startProcess("'+path+'","'+args+'")');
      this.image=img;
      this.tooltipText = label;
    
    this.startProcess=function(path,args){
    var file = Components.classes['@mozilla.org/file/local;1']
        .createInstance(Components.interfaces.nsILocalFile);
    var process = Components.classes['@mozilla.org/process/util;1']
        .getService(Components.interfaces.nsIProcess);
     file.initWithPath(path.replace(/\//g,'\\\\')); 
    // file.launch();
     process.init(file);
     process.run(false,[args],1); 
    }
    
    
    /*---------------------- Show Focus Block Start ------------------------*/
    
    this.style.opacity = '.65';
    this.setAttribute('onmouseover', 'custombuttons.ButtonBrt(event);' );
    this.setAttribute('onmouseout', 'custombuttons.ButtonDim(event);' );
    
    /*----------------------- Show Focus Block End -------------------------*/
    /*--------------- Custom Buttons2 Attributes Block Start ----------------*/
    this.setAttribute('author','deepakjoshi04');
    this.setAttribute('version','null');
    this.setAttribute('homepage', 'http://custombuttons2.com/forum/viewtopic.php?f=35&t=' + '');
    this.setAttribute('dependency','null');
    this.setAttribute('status','null');
    this.setAttribute('public',true);
    this.setAttribute('help','0,null');
    // this.tooltipText += '';
    
    /*---------------- Custom Buttons2 Attributes Block End -----------------*/
    

    うひゃーなんだこりゃーってのが大半の人の感想でしょうが、普通に起動するソフトを変更するだけなら 書き換え作業は別にむずかしくないです。

    var path='C:/Program Files/IrfanView/i_view32.exe';

    ここが、起動したいソフトのパス(アドレス)をいれるところです。 普通にirfanviewをインストールしていれば、program filesのirfanviewフォルダにi_view32.exeという ソフトがあるはずですが、環境によっては違うかもしれないので、そういう人は各自、自分でファイルの パスを打ち込んでください。よくわからないという人は、起動したいソフトのあるフォルダまで行って、アドレスを コピーしてvar path='ここにコピペしてください';

    そして必ず\のところをスラッシュ「/」に書き換えて、その後に 本体のソフト名をぶち込むのです。他のソフトでしたい人も同様。説明すると小難しいかな?

    //var path='c:/windows/explorer.exe';のところはなんだっていいようです。他の ボタン製作者にならってここはエクスプローラーをいれときます

    var args='/capture=1';

    ここがいわゆる、引数(パラメーター)をぶち込むところです。引数(ひきすう)とはなんぞや というと、あるアプリケーションに起動してくれーってお頼み申すさいに、「たったついでにこれやってよ」と 特定の機能を付随して発動するように命令する文字列です。この/capture=1は 「アクティブウインドウをキャプチャしろ」という意味で、1のところを0にするとフルスクリーン、2にすると「アクティブウィンドウ・クライアント領域」 という指定になるようです。コマンドは、大体そのソフトのヘルプに書いてある場合がおおいんで、それを参照してください。

  6. ボタンをメニューバーに置く

    以上の作業を終えて「OK」を押すと、黄色いビックリマークがでててくるでしょうから、とりあえず OKを再び押します。あれー何にも変わってないよ?と思うかもしれませんが、ボタンはすでに完成してます。

    再び右クリックしてメニューを出し、「カスタマイズ」を選びましょう。

    こういうウインドウがでてくるはずなんで、さきほど作ったアイコンを探しましょう

    これですね。ドラッグしてメニューバーの好きなところにおいてください。これで完成です。

    ためしにアイコンをクリックすると、irfanviewが起動し、この画面のキャプチャーが出るはずです。 Hを押せば左右反転する!これで絵チャでもゆがみが2秒でわかるぜ!ひゃっほーい!終了はEscキー。

  7. おまけ、そのまま保存するコマンド

    単にキャプするだけなら別にwinshotとか キャプラとか使えばいいだけなのですが。 OPERAの紹介ブログの人のそのまま書き写しで本当に恐縮ですが さきの引数のところにコマンドを追加すると、キャプした画像を名前付で自動的に保存してくれるようになります。

    var args='/capture=1 /convert=d:\capture\$U(%Y%m%d%H%M).png';

    d:\captureフォルダに、年月日時分の番号月で保存されるというわけです。例えば0810200628.pngというように。

OPERAやSleipnirの場合、直接ブラウザで閲覧しているデータを他ソフトにもっていけるのですが、 Firefoxの場合はそれができないのがどうも気になりはします。なんかよい解決法ないですかねー。