システムwiki

Windows上のApplicationにファイルのクラス全体を関連付ける方法はありますか?

thegrea 受付中 最終更新日:2020-08-19 16:45

これは、LINK:shell entry多数の記事を読みました
「Windowsシェル」トピックの下にありますが、Windowsファイルの関連付けがどのように機能するかについては、散在的で漠然とした理解が残っています.

標準的なWindows 10インストールがあります-サードパーティのビデオプレーヤーはなく、Windows Media Playerと新しいムービーアプリしかありません.再生するには、 WebM(ビデオ)ファイル.

ただし、HKEY_LOCAL_MACHINE\Software\Classesキーの下に.webmレジストリキーがあります. "video/webm"のContentTypeの値とPerceivedTypeの値 "video".他の新しい拡張機能も同様です. .webp.mkvなど.なぜそこにあるのか、なぜこれらのキーを作成したのかはわかりません.

これにより、少なくとも理論的にはこれらがそれぞれ「ビデオ/」の主要なMIMEタイプであることがわかり、Windowsがさまざまなビデオコンテナをある種の「ビデオ」クラスのファイルに分類できるはずだと私は信じています.彼らが共有するという事実
同じ「知覚タイプ」.

既知のすべてのビデオ形式に対して1つの関連付けを明示的に作成せずに、そのようなすべてのビデオファイルをApplicationに関連付ける方法はありますか?できれば、Windowsで可能な分類の種類から利益を得たいと思いますします.

つまり、私のApplicationは、WebM(.webm拡張子)やMPEG-4(.mp4拡張子)などの個々のビデオコンテナ形式を明示的にサポートまたは拒否していません.またはその他-ファイルを再生するためにDirectShowに渡します.
設計上、インストールされているフィルターを使用してメディアファイルを再生しようとします.これらのフィルターはApplicationとは別にインストールできるため、ファイルタイプごとの関連付けを確実に維持する方法がわかりません.これをあらゆるWindowsサブシステムに委任する
は、最初にHKEY_LOCAL_MACHINE\Software\Classesキーの下に.webmキーを作成しました.おそらく、MicrosoftはこれらをWindows Updateの一部として更新しますか?

Windowsがビデオファイルと見なすものを関連付けることができる場合は、ビデオファイルであるクラス全体でApplicationに関連付けることができれば、少なくとも、ユーザーがApplicationでスローしたものをすべて再生できるようにすることができます.それの美徳
WindowsがメディアファイルであるとWindowsが判断した場合は、コンテキストメニューで使用できます.これは、Windows Media Playerが通常いくつかのメディアコンテナーフォーマットに登録され、すべてのファイルをすべて再生できないという以前の状況よりも悪くありません.
コーデックが不足しているためサポートされている形式です.少なくとも、新しいビデオ形式が出るたびにApplicationを更新する必要はありません.

返信リスト(回答:4)

1 #
KeithA.

シェルサブキーを追加し、次に開くサブキーを追加した場合:

HKEY_CLASSES_ROOT\SystemFileAssociations\video

思い通りの行動が得られます.

見て:

HKEY_CLASSES_ROOT\SystemFileAssociations\text\shell\open\command

例として.

キース

応答1# ->にスキップ
2 #
thegrea

こんにちはキース、

あなたの答えをありがとう.私はあなたが私の質問をする前にあなたが提案したことをやってみました.それは機能しません-私は「ビデオ」キーの下にある「シェル」(「シェル」の下にある「Play」キーを入手しません."ファイル
(*.MP4および*.WebMファイルでそれを試してみました.このWindows Media Playerが開きます).Windowsが「Openを開く」を選択した場合、Windowsがファイルを開くことができるアプリのリストにApplicationを表示しません.

私はまた「OpenWithProgids」ベースの解決策を試してみました.「ビデオ」クラスキーの下にはありません.

仕事をした唯一のもの-そしてそれはかなり独特の解決策です-hkcr\* keyの下に "shell\play\command"を配置することは、通常、_every_ファイルの「Play」動詞を想定して提供するでしょう.その後、 "Appliesto" reg_sz値を "Play"キーに追加しました
文字列 `system.kind:"ビデオ "`(値の一部ではなくティック)で マイクロソフトによって文書化されているように.

上記の解決策の問題は、Applicationを起動する「Play」動詞が「ビデオ」ファイルとビデオファイルのみを正しく表示しています(技術的にはWindows Search/Explorerの「ビデオ」種類の検討)それは同様によく現れます
_Beside_もう1つ(メニュー内の最上位)Windows Media Playerが提供するように動詞を再生します.Applicationを使用するWindowsユーザーにとって非常に混乱していると想像しています.

「OpenWithProgids」を使用しているすべての解決策は、私の意見では重要な欠点を持っています-私はマイクロソフトがファイルをApplicationに関連付けてデフォルト設定などを設定するためのより多くの方法を追加したと信じる-すでにある場合
Applicationを追加する場所のレジストリ内の「プレイ」または標準キーは、キーを上書きすることで、Windowsの設定を効果的にめちゃくちゃにしています.別のApplicationがすでに「シェル\Play\Command」に配置した場合
「HKCR\SystemFileasSociations\Video」または「HKCR\*」または「HKCR\Video」のツリー? マイクロソフトは、Applicationをアナウンスしたい場合に「OpenWithProgids」キーを使用することをお勧めします.ApplicationApplicationが特定のファイルタイプを処理できるようにします. これは私が欲しいものです.私はユーザーの好みのようなユーザーの好みを変更しても構いません.
その.

応答2# ->にスキップ
3 #
KeithA.

他のタイプでは機能しないようです:

1.動詞「bobビデオ:

.wmv:

のコンテキストメニューに表示されます.

および.avi:

.mp4:

私は「bob」を使用したので、「open」動詞がここで定義されていた場合には、「」の場合にのみ表示されます.拡張子/PROGIDには、「」動詞が定義されています.見ているなら オーバーライドこれらの協会、私はあなたが運不足だと思います.

応答3# ->にスキップ
4 #
thegrea

この問題の調査にご協力いただきありがとうございます.私はさらに、私が持っているような任意のApplicationに種類全体または認識されたタイプのファイルを確実に関連付ける[文書化された]方法はないと想定します.自分のコンテキストメニューを書くのに足りない
Windowsがビデオファイルを適切に分類できるように見えるので、私は正直言って、大槌を使ってナットをクラックすることに似ていると思うcomサーバーのハンドラー.

とにかく、関連する別の問題が発生しました.Applicationをメディアプレーヤーとしてリストすることすらできず、そのトピックについて別の質問を作成します.