2014.
05.
02
15:10:58
結論から書けば
や
でOKです。
それでは詳細を書いていきます。
既定のブラウザで特定のURLを開くバッチファイルを作ろうと思ったのですね。
ブラウザが固定であれば
のように
と書けば良いのですが、既定のブラウザ、つまり環境によって違うブラウザで開きたかったのです。
どーすればいーんだべ(--?
困ったときのGoogle先生です。
教えてくださいませ(-人-)
ふむふむ(--)
や
でOKでした。
※URLの部分は適当に読み替えてください。
他にもやり方はありそうでしたが、取りあえず2つ見つけたので調査は打ち切り。
「多分どっちかは動くでしょ」と思ったら両方動きました。ばんざーい\(--)/
というわけで、終わり\(--)/
……だと味気ないので、、いくつか情報を補足しておきますね。
まず
の「rundll32.exe」はDLLの中にある関数を呼び出すときに使う実行ファイルです。
「url.dll」はDLLの名前で「FileProtocolHandler」は関数の名前です。
つまり、この記述は
「url.dll」ってDLLの中にある「FileProtocolHandler」って関数を実行してよ
と書いてあります。
次に、関数「FileProtocolHandler」はファイルやフォルダのパスを引数に取ります。
引数で指定したのがファイルの場合、関連付けられたアプリケーションでファイルを開きます。
フォルダを指定した場合は、普通にフォルダが開きます。
この引数にURLを指定すると、既定のブラウザでURLが開かれるのです。
これが一つ目のやり方です。
二つ目のやり方もほとんど同じですけどね。
の「start」は、なんかいろいろ別ウィンドウで実行するコマンドです。
例えば、引数にコマンドを指定して
と記述すると、新しいコマンドプロンプトが起動して、そこで「dir」コマンドが実行されます。
のようにバッチファイルを指定した場合も同じです。
新しいコマンドプロンプトが起動して、そこでバッチファイルが実行されます。
のようにフォルダを指定した場合は、エクスプローラが起動して指定されたフォルダが表示されます。
のようにファイルを指定した場合は、そのファイルが開きます。
そして
のようにURLを指定すると、既定のブラウザで指定されたURLが開くのです。
これが2つ目のやり方です。
実際のところは分かりませんが、Windowsさんの中では、
URLとファイルを同じように扱っているのではないかと推測しています。
エクスプローラーを開いてパスのところにURLを入力すると、そのURLが開きます。
パスのところにファイル名(フルパス)を入力すると、そのファイルが開きます。
「http」始まりはブラウザと関連付けられたファイルですよ~みたいに
扱ってるんじゃないですかね(--?
……む、微妙に違うな。
えっと、
としているのではないかと解釈しています。
根拠は無いですけどね(-。-)ぼそっ
でファイル「hoge.txt」が開いたり
で「http://wa3.i-3-i.info」が開いたりするので、そこまで間違ってはいないと思いますよ。
なんか脱線しまくったので最後にもう一度まとめると、
や
で、コマンドプロンプトから既定のブラウザで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を渡す
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を開くことができます。
完了\(--)/