web-dev-qa-db-ja.com

.htmデフォルトアプリによって制御される一連のURLプロトコルのデフォルトアプリ?

私はPCをセットアップして、IEとその他すべてのブラウザ関連(http/https/htmlなど))でFTPとファイルのURLを開くようにしていました。

思わぬ障害が発生しました。ほぼすべてのレジストリキーを操作した後、デフォルトのアプリに関連して見つけることができます。

私が言うことができることから、「。htm」ファイルタイプを処理しているアプリは、デフォルトのアプリ設定に関係なく、他のすべてのタイプとプロトコルも同様に開きます!

これは仕様ですか?異なるアプリが異なるプロトコル/ファイルタイプを開くことを許可されていませんか?もしそうなら、デフォルトのアプリシステムのポイントは何ですか?

誰でもこれに光を当てることができますか?

編集:私はもっと具体的だったはずだと思います。もちろん、私はコントロールパネルのデフォルトのアプリ設定について知っています。しかし、これはまさに私の主張です。 FTP /ファイル/任意のURLプロトコルのデフォルトアプリを設定すると、「htm」ファイル(htmlではなくhtm)を処理するように設定されたアプリによってオーバーライドされます。これは、デフォルトの「ブラウザ」アプリがWindowsによって設定される方法でもあります。ブラウザーアプリをhtmアプリに自動設定します。

更新

私がテストしていたメカニズムに惑わされたようです。具体的には、Dynamics AxeにボタンがあるURL /ハイパーリンクフィールド。

File://またはUNC-paths、FTP/HTTP/HTTPS ALLを開いて、htm(またはデフォルトのWebブラウザー)を処理するアプリで開きます。

@treintjeの提案に従ってコマンドプロンプトでテストした後、さまざまなファイルタイプとプロトコルが正しいアプリで開きます。私は疑わしいです。DynamicsAxは、urlmon.dllなどの呼び出しを使用して、デフォルトのWebブラウザーがリンクを確実に処理するように、すべてのプロトコルとファイルタイプを「インターセプト」します。

7
Dynde

次のレジストリキーがURLの関連付けを制御しているようです:

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations

rlAssociationsの各サブキーには、 "[protocolname]\UserChoice"という名前のキーが含まれています。 ProgIdという名前のレジストリ設定は、ftp/http/https/etcなどのクラスルートレジストリキーを指しているようです。

Google Chromeがインストールされているシステムでは、レジストリ値はデフォルトで次のように構成されています。

[...\UrlAssociations\ftp\UserChoice]
"ProgId"="ChromeHTML"

次のコマンドの実行時にInternet Explorerが起動していることを確認するには:

start "" "ftp://localhost"

ProgIdレジストリ値は、次のように変更する必要があります。

[...\UrlAssociations\ftp\UserChoice]
"ProgId"="ftp"

そして、レジストリキーのデフォルト値ftp\Shell\open\command

[HKEY_CLASSES_ROOT\ftp\Shell\open\command]
@="\"C:\\Program Files\\Internet Explorer\\\iexplore.exe\" \"%1\""
3
treintje

プロトコルの関連付けは、[コントロールパネル]> [すべてのコントロールパネルアイテム]> [既定のプログラム]> [関連付けの設定]で変更できます。 Protocol Associations レジストリを見つけるには、次のパスに移動します。:FTPの場合-

[HKEY_CLASSES_ROOT\ftp]および[HKEY_CLASSES_ROOT\PROTOCOLS\Handler\ftp]

そのパスにはHTTPおよびHTTPSレジストリキーもあります。

1
Biswapriyo

設定> アプリ> デフォルトのアプリ>に移動し、下にスクロールしてアプリのデフォルトを選択をクリックします。

次に、左側から目的のブラウザを見つけます。

0
JordanGS