web-dev-qa-db-ja.com

Windowsは、レジストリのどこに、特定の種類のファイルを開くためのプログラムを格納していますか?

Adobe PDFリーダーをインストールした後、.PDFファイル拡張子。既定のWebブラウザーが開きます.htmlファイルとメモ帳が開きます.txtファイルなど.

これらのファイルの種類は、レジストリのどこにあるのですか-プログラムの関連付けはレジストリに保存されていますか?

言い換えると、Windowsは、特定のファイル(タイプ)を開く必要があるソフトウェア/プログラムをどのようにして知るのでしょうか。

20
claws

open withアソシエーションはすべてHKEY_CLASSES_ROOTに保存されます。

これは、HKEY_CURRENT_USER\Software\Classesのローカルユーザーの関連付けとHKEY_LOCAL_MACHINE\Software\Classesのシステムの関連付けを組み合わせた特別なレジストリハイブです。

これは、私のレジストリから、あなたが質問で言及しているPDF関連のショットです。

PDF file association in the registry

14
Gaff

ガレスの答えを拡張するだけです:

レジストリをいじってみると

  • HKEY_CURRENT_USER\Software\Classesのエントリは、HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CLASSES_ROOT\Software\Classesのエントリを上書きします
  • assocコマンドを使用してコマンドラインからファイルの拡張子の関連付けを設定すると、HKEY_LOCAL_MACHINE\Software\Classesが機能します
  • ftypeコマンドを使用してコマンドラインからファイルタイプの関連付けを設定すると、HKEY_LOCAL_MACHINE\Software\Classesが機能します。
9
Piotr Dobrogost

答えは(おそらく、私はチェックしなかった)正しいですが、ファイルの関連付けを変更する正しい方法は、Microsoftが設計したGUIを使用することです。 (つまり、セットアップ開発者ではなくユーザーである場合)。

これが素敵な写真のチュートリアルです。Googleで見つけました: http://www.digitalcitizen.life/how-associate-file-type-or-protocol-program

しかし、スタート(win7メニューまたはwin8画面、どちらでも構いません)を開いて、file associationと入力するだけです。 enterと入力すると、正しいコントロールパネルリンクが開きます。 (コントロールパネル\プログラム\既定のプログラム\関連付けの設定)。

3
Lukas Rieger