プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Windows、コマンドプロンプトから既定のブラウザでURLを開く
結論から書けば

rundll32.exe url.dll,FileProtocolHandler "【開きたいURL】"



start 【開きたいURL】

でOKです。

それでは詳細を書いていきます。

既定のブラウザで特定のURLを開くバッチファイルを作ろうと思ったのですね。
ブラウザが固定であれば

"C:\Program Files\Internet Explorer\iexplore.exe" http://wa3.i-3-i.info

のように

【開くブラウザのパス】 【開きたいURL】

と書けば良いのですが、既定のブラウザ、つまり環境によって違うブラウザで開きたかったのです。

どーすればいーんだべ(--?

困ったときのGoogle先生です。
教えてくださいませ(-人-)

ふむふむ(--)

rundll32.exe url.dll,FileProtocolHandler "http://wa3.i-3-i.info"



start http://wa3.i-3-i.info

でOKでした。
※URLの部分は適当に読み替えてください。

他にもやり方はありそうでしたが、取りあえず2つ見つけたので調査は打ち切り。
「多分どっちかは動くでしょ」と思ったら両方動きました。ばんざーい\(--)/

というわけで、終わり\(--)/

……だと味気ないので、、いくつか情報を補足しておきますね。
まず

rundll32.exe url.dll,FileProtocolHandler "http://wa3.i-3-i.info"

の「rundll32.exe」はDLLの中にある関数を呼び出すときに使う実行ファイルです。
「url.dll」はDLLの名前で「FileProtocolHandler」は関数の名前です。
つまり、この記述は

「url.dll」ってDLLの中にある「FileProtocolHandler」って関数を実行してよ

と書いてあります。

次に、関数「FileProtocolHandler」はファイルやフォルダのパスを引数に取ります。
引数で指定したのがファイルの場合、関連付けられたアプリケーションでファイルを開きます。
フォルダを指定した場合は、普通にフォルダが開きます。

この引数にURLを指定すると、既定のブラウザでURLが開かれるのです。

これが一つ目のやり方です。

二つ目のやり方もほとんど同じですけどね。

start http://wa3.i-3-i.info

の「start」は、なんかいろいろ別ウィンドウで実行するコマンドです。

例えば、引数にコマンドを指定して

start dir

と記述すると、新しいコマンドプロンプトが起動して、そこで「dir」コマンドが実行されます。

start hoge.bat

のようにバッチファイルを指定した場合も同じです。
新しいコマンドプロンプトが起動して、そこでバッチファイルが実行されます。

start C:\

のようにフォルダを指定した場合は、エクスプローラが起動して指定されたフォルダが表示されます。

start hoge.txt

のようにファイルを指定した場合は、そのファイルが開きます。

そして

start http://wa3.i-3-i.info

のようにURLを指定すると、既定のブラウザで指定されたURLが開くのです。

これが2つ目のやり方です。

実際のところは分かりませんが、Windowsさんの中では、
URLとファイルを同じように扱っているのではないかと推測しています。

エクスプローラーを開いてパスのところにURLを入力すると、そのURLが開きます。
パスのところにファイル名(フルパス)を入力すると、そのファイルが開きます。

「http」始まりはブラウザと関連付けられたファイルですよ~みたいに
扱ってるんじゃないですかね(--?

……む、微妙に違うな。
えっと、

1.ファイル名やURLから起動するプログラムを判断
2.起動するプログラムに、引数としてファイル名やURLを渡す

としているのではないかと解釈しています。

根拠は無いですけどね(-。-)ぼそっ

C:\Windows\notepad.exe hoge.txt

でファイル「hoge.txt」が開いたり

"C:\Program Files\Internet Explorer\iexplore.exe" http://wa3.i-3-i.info

で「http://wa3.i-3-i.info」が開いたりするので、そこまで間違ってはいないと思いますよ。

なんか脱線しまくったので最後にもう一度まとめると、

rundll32.exe url.dll,FileProtocolHandler "【開きたいURL】"



start 【開きたいURL】

で、コマンドプロンプトから既定のブラウザでURLを開くことができます。

完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:コマンド/バッチ  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事