私は複数のブラウザーを定期的に使用しているため、既に実行しているブラウザー(またはFirefoxがない場合はFirefox)でページを開くスクリプトを作成しました。このスクリプトをデフォルトのブラウザとして設定します。 [関連付けの設定]ダイアログに移動してHTTPを選択し、[プログラムの変更]をクリックすると、ポップアップするダイアログで、既にインストールされているWebブラウザー以外を選択できません。これは、すべてのプロトコルに当てはまるようです(「その他のプログラム」から選択したり、リストされていないプログラムを参照したりできるファイル拡張子とは異なります)。 Windowsヘルプはこれについて何も言わず、利用できない「参照...」ボタンを使用するよう指示するだけです。サードパーティの「デフォルトプログラムエディタ」も試してみましたが、それができないようです。
スクリプトを手動で(おそらくレジストリを編集して)デフォルトとして設定する方法はありますか?
はい、レジストリを直接操作してスクリプトを作成できます。
以下のそれぞれを.reg
ファイル(firefox.reg
、chrome.reg
、ie.reg
など)にコピーし、切り替えたいときに実行します(または、reg.exe
でスクリプトを作成します)。
Firefoxの場合:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
Chromeの場合:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"
IE9の場合:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"
Windowsでは、ユーザーごとの標準プロトコルのデフォルト登録をUrlAssociations
キーの下に格納しています。
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
ファイルの関連付けと同様に、リンクには「デフォルトプログラム」を設定できます。これは、UserChoice
キーを参照する一種の専門用語です。http
ProgIdの下に、標準のファイル関連付けのようなシェル登録もあり、これはも可能です変更されますが、ブラウザの近位設定はデフォルトプログラムを介して行われます(これに関する追加コメントについては、下部を参照してください)。
ここで私が話しているのは、コントロールパネルの[既定のプログラム]セクションに移動してブラウザーを設定するときに変更する内容です。
これをレジストリで直接構成するには、まず、すでにそこにあることを調べてみましょう。このスクリーンショットでは、regedit.exe
でそのキーに移動しました。Chromeは、ChromeHTML
ProgId値で指定されたデフォルトのブラウザーです。
リンクをクリックしたときに開くブラウザーを切り替えるために必要な最小限の変更は、変更する各プロトコルのProgId
サブキーの下のUserChoice
値を変更することです(おそらくhttp
とhttps
は同じになりますが、何らかの理由でそれぞれを別々のブラウザーで開くようにしたい場合は、できます)。
これは、Firefox、IE、および他のどのブラウザーに切り替えるかを決定するだけの問題です。これをプログラムで決定したい場合は、Firefoxの場合はここにあるブラウザー登録のCapabilities
キーを掘り下げることでそれを行うことができます。
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet
はすべてのブラウザーがリストされる場所であり、それぞれが上記の構造を持つ必要があります。
調べてみると、Firefoxに切り替えたい場合は、FirefoxURL
ProgId値をUrlAssociationsにバックアップして使用していることがわかります。
(ただし、このように掘り下げたくない場合は、簡単なチートがあります。デフォルトとして必要なブラウザーを設定し、regeditを更新して、ブラウザーがUserChoice
に設定した内容を確認してください。)
キーの値をFirefoxURL
に変更するだけで、Firefoxでリンクが開きます。これを行った後、リンクをクリックするか、コントロールパネルで正しいデフォルトが登録されていることを再確認します。
今、あなたが細心の注意を払っていたなら、あなたはこれのすべてにいくつかの欠陥に気づいたかもしれません:
IEはURLAssociations
のブラウザー登録の下にStartMenuInternet
サブキーがないので、ProgId値はどこから取得されますか?回答:わかりません。少なくともこれ以上の研究が必要です。ハードコードされているか、まだ見つけていない別のキーに含まれている可能性があります。
その下のFirefoxのProgIdはURLAssociations
がFirefoxURL
ですが、クリックしてブラウザー自体のオプションに登録すると、代わりにFirefoxHTML
がProgIdとして使用されます。どうして?繰り返しますが、わかりません。どちらも存在し、Firefoxを指しているため、どちらも機能します。多分それは意図的なものですが、おそらく効果のない単なるバグです。
UserChoice
デフォルトプログラムがない場合はどうなりますか?回答:プロトコルの「通常の」ファイル関連付け(たとえば、http
)が使用されます。これは、ファイルの関連付け(HKCU\Software\Classes
、HKLM\Software\Classes
、およびHKCR
のビュー)と同様に、標準のProgIdの場所にあります。少なくともChromeはそこに情報を設定すると思いますが、少なくとも私のテストではFirefoxはそうではないようです。
これをデフォルトプログラムエディタに追加したい場合は、そのアプリケーションの serVoiceフィードバックページ で提案して賛成することをお勧めします。私は、アプリケーションの作成者が彼の開発時間をどのように費やすかを決定するときにそのフィードバックに注意を払うことは、十分な権限に基づいています!
これは今日でもWindows 10に関連があるため、投稿します。
レジストリに関する他の回答が表示されます。これは便利ですが、すべて手作業で行うのは非常に困難です。したがって、私は自分で行う必要のあるすべてのものを取り除いた自分のレジストリ構成(この回答の下部にある)を送信したいと思います!これを作成したのは、「Ungoogled Chromium」ブラウザをデフォルトとして使用したかったのですが、利用可能なブラウザのリストにアプリケーションを追加するための適切なインストーラがありませんでした。
.regファイルをPCに保存してから、次の手順を実行します。
私が持っている唯一の問題は、何らかの理由で、Chromiumがデフォルトにした後でも、それがデフォルトのブラウザではないと言ってしまうことです。 Chrome=をインストールし、Chromiumに切り替えた後、メッセージは消えました。IEに切り替えてからChromiumに戻った後です。私はしません残念ながらその理由は分かりますが、警告を無効にしてください。
レジストリファイルを正しくインポートすると、ブラウザが選択可能なアプリケーションのリストに表示されます。 デフォルトアプリケーションリスト
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\Capabilities]
"ApplicationDescription"="Chromium without Google's phone home."
"ApplicationIcon"="\"C:\\Program Files\\Ungoogled Chromium\\chrome.exe\",0"
"ApplicationName"="Ungoogled Chromium"
[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\DefaultIcon]
@="C:\\Program Files\\Ungoogled Chromium\\chrome.exe,0"
[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\Capabilities\FileAssociations]
".crx"="UngoogledChromium"
".htm"="UngoogledChromium"
".html"="UngoogledChromium"
".nex"="UngoogledChromium"
".pdf"="UngoogledChromium"
".shtml"="UngoogledChromium"
".xht"="UngoogledChromium"
".xhtml"="UngoogledChromium"
[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\Capabilities\Startmenu]
"StartMenuInternet"="UngoogledChromium"
[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\Capabilities\UrlAssociations]
"http"="UngoogledChromium"
"https"="UngoogledChromium"
"ftp"="UngoogledChromium"
"mailto"="UngoogledChromium"
[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium]
"FriendlyTypeName"="Chromium Web Document"
"URL Protocol"=""
[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium\DefaultIcon]
@="C:\\Program Files\\Ungoogled Chromium\\chrome.exe,0"
[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium\Shell]
[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium\Shell\open]
[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium\Shell\open\command]
@="\"C:\\Program Files\\Ungoogled Chromium\\chrome.exe\" -- \"%1\""