Windows の既定のブラウザ設定について
SOFTWARE REPORT
既定のブラウザ
Windows では、インターネット関連のファイルを開く際に、とくに指定が無ければ既定のブラウザで開こうとします。
複数のブラウザを使用していると、既定のブラウザを意識することもあるかと思いますが、ある時、既定のブラウザは Microsoft Internet Explorer のはずであるにもかかわらず、プログラムで既定のブラウザを取得させてみたところ、 Google Chrome が取得されてしまったのでした。
確かに Google Chrome はインストールしてあったのですけど、それを既定のブラウザにした記憶はなく、Internet Explorer の設定自体も、Internet Explorer が既定のブラウザであると認識されている様子です。
そこで、既定のブラウザを取得する方法が間違っていないかを再度確認してみたところ、既定のブラウザの設定というのは少し複雑な感じになっているようでした。
既定のブラウザを見つけるためには、Windows のレジストリを参照すれば良いことまでは間違いないようなのですけれど、最初に見つけた資料では、そのうちの次のキーの値を取得すれば良いと書いてありました。
\\HKEY_CLASS_ROOT\http\shell\open\command
ここにブラウザを起動させる際のコマンドが記されているので、ここの最初に現れるプログラムのパスを取得すれば、既定のブラウザのプログラムが判断できるということでした。
ところが、実際にこの値を参照してみると、自分の環境では Google Chrome のパスになっていたのでした。
システムでは Internet Explorer が既定のブラウザになっているにもかかわらず、Google Chrome が取得されてしまうのは明らかに不自然な感じです。しかも、ブラウザが自動起動するプログラムでは、既定であるはずの Internet Explorer がちゃんと実行されます。
そもそも既定のブラウザの設定が記録された場所が間違っているのかと思い調べてみると、どうやら、ブラウザの起動に係る設定箇所は、どうやらこれだけではないようです。
\\HKEY_CLASS_ROOT\htmlfile\shell\open\command
\\HKEY_CLASS_ROOT\htmlfile\shell\opennew\command
\\HKEY_CLASS_ROOT\http\shell\open\command
\\HKEY_CLASS_ROOT\https\shell\open\command
上記のこれらで、ファイルを開いた際に起動するプログラムとして、ブラウザが設定されているようです。
詳しい事は判りませんでしたが、おそらくこれらの設定の加減を見て、現在の既定のブラウザが何かを判断しているのではないかと思います。
今回は htmlfile の open と opennew にて Internet Explorer のパスが設定され、http と https では Google Chrome が設定されているといった感じでした。
どれが本来の既定のブラウザを指すことになるかは判らないですけど、とりあえず今の状況でみれば、htmlfile の opennew と open 内の command の値を見るのが、信憑性があるように感じます。