So-net無料ブログ作成
検索選択

ThunderbirdからFirefoxを起動できないし、FirefoxからThunderbirdを起動できない。:正己の異論・反論(雑感):So-netブログ を見て [メール投稿]

ThunderbirdからFirefoxを起動できないし、FirefoxからThunderbirdを起動できない。:正己の異論・反論(雑感):So-netブログ
 Windowsの既定のブラウザをFirefoxにしてある場合、「Thunderbird -no-remote -P "Another Profile"」で起動したThunderbirdのメールのリンクをクリックするとFirefoxが起動するのだが、起動したまま、クイック起動やデスクトップのショートカットなど起動中のFirefox以外からFirefoxを起動しようとすると、起動中で終了させないと起動できないという感じのエラーで起動できない。

 単純な実験で、Firefoxのショートカットを二つ作り、片方のリンク先の末尾に「 -no-remote」を付けて、両方のショートカットを順に起動してみると良い。どちらを先に起動しても、もう一方が起動できないはず。
 また、Thunderbirdを二つのプロファイルで同時に起動し、それらのメールのリンクをクリックして開いたFirefoxのmailto:リンクをクリックしてみると良い。リンクが無ければブックマークツールバーにURL欄を「mailto:」にしたものを追加して実験すると良い。すると、「 -no-remote」無しで起動したFirefoxの「mailto:」では「 -no-remote」無しで起動したThunderbirdのアカウントが送信者なり、「 -no-remote」付きで起動したFirefoxの「mailto:」では「 -no-remote」付きで起動したThunderbirdのアカウントが送信者になるようである。ただし、「 -no-remote」付きで起動したThunderbirdを終了しないと、次のようなエラーが現れて起動できない。
次のようなエラー。「Thunderbirdは起動していますが応答しません。新しいウィンドウを開くにはまず既存の…終了させるか…」
 そして、「 -no-remote」付きで起動したThunderbirdのリンクから起動したFirefoxの起動中は、Thunderbirdのリンクからはもちろんのこと、どこからもFirefoxを新たに起動できず、次のようなエラーになる。


 どうやら、かなり以前から指摘されているバグらしく、対策もネット上にあった。
Can thunderbird with -no-remote launch firefox without it? - Super User
Try creating a script like this. . .

#!/bin/bash
unset MOZ_NO_REMOTE
/usr/bin/firefox "$@"

Then set network.protocol-handler.warn-external.http to "true".

Then launch Thunderbird, click a link, and choose your script.

This works for me on Thunderbird 3.1 on RHEL6. If I have more than one Firefox profile open, the link is opened in the first Firefox profile I launched.

 Windowsでこれと似たbatファイルを作って【Batch To Exe Converter】でexeファイルにして、代わりに実行すれば良さそうである。Thunderbirdのリンクをクリックして既定のブラウザ以外のブラウザやアプリケーションを起動する方法については、日本語で解説してくれている人もいる。
ThunderBirdに任意のブラウザを関連付ける:G'sのだらだらぐーたら日記 on blog
なお、httpだけでなく、httpsも同様に[True]にしておけば、同じように指定したブラウザで開くことが出来るようになる
なお、再度設定を変更したい場合には、オプションで添付ファイルタブを開くとそこに設定が表示されているので、削除もしくは設定をし直すことで、再度変更ができる

 再設定できるようなので、失敗したら設定を削除したり変更したりすれば良い。

 さて、どのようなバッチファイルにしたら良いかだが、MOZ_NO_REMOTEについて書いてあるサイトにヒントがあった。
Chicagrafo: MOZ_NO_REMOTE
You may run several processes of Firefox simultaneously by setting the environment variable 'MOZ_NO_REMOTE' to one. In a DOS/Windows command line '.bat' file, you can do something like this:

Set MOZ_NO_REMOTE=1
*path to firefox*\firefox -ProfileManager
Set MOZ_NO_REMOTE=


The '-ProfileManager' is necessary because every simultaneous Firefox process needs its own profile, so, this will display the profile list to create/delete/select a firefox profile.

Note that there is no assigned value to 'MOZ_NO_REMOTE', this deletes the variable from the environment.

 「MOZ_NO_REMOTE=1」となっていることでFirefoxが起動中だとリンクをクリックしてもエラーが生じるわけで、それをunsetする方法は、「MOZ_NO_REMOTE=0」ではなく、「Set MOZ_NO_REMOTE=」と値を指定しないことらしい。ちなみに、「MOZ_NO_REMOTE=1」は「システムのプロパティ」の「詳細設定」の「環境変数」の「システム環境変数」でも設定できるらしく、設定したままだと、「Firefoxは起動していますが応答しません。新しいウィンドウを開くにはまず既存の…終了させるか…」のエラーに悩まされることになるので、設定しない方が良い。
 それで、「Set MOZ_NO_REMOTE=」の後にFirefoxを起動するbatファイルであるが、次のように記述すれば良さそうである。
@echo off
Set MOZ_NO_REMOTE=
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" "%1"
exit

 このbatファイル(例えばopenFx.bat)を【Batch To Exe Converter】でexeファイル(例えばopenFx.exe)にして、【ThunderBirdに任意のブラウザを関連付ける:G'sのだらだらぐーたら日記 on blog】に書いてある方法で、指定すれば良い。
 しかし、これで問題が解決したと思ったら、そうではなかった。
 試しに、ThunderbirdからGoogleニュースのRSSフィードのリンクをクリックしたら、予定外のページが表示された。表示されたページのURLを見たら、リンクしたURLとも、GoogleニュースのRSSフィードのURLからジャンプするニュースサイトのURLでもない。調べた結果、"%1"でちゃんとURLが私の作ったopenFx.exeに渡されてなかった。「=」や「&」があるとその前で切れてしまうようである。そんなURLはたくさんある。この件は問題が解決してない。だから、私はopenFx.exeを使ってない。
 ちなみに、"%1"でURLが私の作ったopenFx.exeにちゃんと渡されてないことは、次のようなbatファイルを作ってexeファイルに変換して確認した。
@echo off
set url=%1
echo %url%
pause
exit

 なんとか「=」や「&」を含むURLが表示されるように「%1」の所をいろいろと変えてみたが、ダメだった。
 とりあえず、このブログを書くことで諦めるつもりだが、解決策が見つかれば良いなと思ってる。
 それ以前に、FirefoxやThunderbirdがバグを解消してくれれば、こんなトリッキーな方法を利用しなくて済むので、開発者には頑張ってほしい。
nice!(0)  コメント(0)  トラックバック(4) 
共通テーマ:moblog

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 4

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。