64ビットOS環境において一部のソフトがLaunch Extensionから起動できない問題の対策

問題の認識過程

ろーんち♪*1ことLaunch Extension
は大変便利で重用しています。
最近メインのOSをWindows 7 x64に変えてみたら、タイトルの通りに動かないソフトが続出orz


ちなみに、類似プラグインであるUserDefinedTools(ユーザー定義ツール)では問題ないようです。
ただ、ろーんち♪のパラメータの"{TARGET_URI}"を使いたいのです。


動くものと動かないものの差はどこにあるのかと調べてみたらどうやらパスに"("、")"のような括弧が含まれていると駄目なようです。
64ビット環境では32ビットのソフトは通常"C:\Program Files (x86)"にインストールされるので、上述の問題に引っかかってくるようです。*2

問題の解決

WSHを間に噛まして回避してみました。
参考:読書メモ+tips+日記:[JScript] 引数の使い方確認


私の基本的用途はSleipnirで見ているページを他のブラウザに渡すことですので、Firefoxを例に解説します。


1.適当な場所に"jsファイル"を作ります。
たとえば"C:\Apps\RelayFirefox.js"と作ったとします。


2."jsファイル"に以下の様に記述します。

var args = WScript.Arguments;

if(args.length == 0) {
	WScript.Echo("引数を指定してください");
	WScript.Quit();
}

var obj = new ActiveXObject( "WScript.Shell" );
obj.Run("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" -requestPending -osint -url "+args(0));
obj = null;

引数の参考:何とかFireFox用のVBSを作ってみたのですが、 - BIGLOBEなんでも相談室


3.ろーんち♪にアクションを登録します。
ポイントはメニューとパラメータの値です。

ファイル wscript.exe
パラメータ "C:\Apps\RelayFirefox.js" {TARGET_URI} *3


4.登録アクションを有効にするためSleipnirを再起動します。
この時についでにコンテキストメニュー(右クリックメニュー)に追加しましょう。
備考 - 右クリックメニューの編集を参考にしてください。
メニューエディタには表示されないと思うので、テキストエディタで開いて直接編集してください。


5.動作確認してみる。
私の環境ではGraniIE(Chrome Frame含む)、IE(64ビット)、FirefoxOperaSafariで動作確認しました。
Google Chromeは"C:\Users\<ユーザ名>\AppData\Local\Google\Chrome\Application\chrome.exe"にインストールされるはずなので最初から問題なし。

不安とか

いつも色々書いたりすると実はもっと手軽にできる方法あるんじゃないかと不安に駆られるんですが、今回より一層それがつよかったり。
ものすごい初歩的なこと見逃してそうだw

*1:愛称:デベロッパーズブログより

*2:16ビットのソフトはVistaの64bitから既に切られてるみたいですね。参考:64ビット版Vista最大の欠点 - 記者の眼:ITpro

*3:現在開いているページを渡したい場合は{URI}使ってください