web-dev-qa-db-ja.com

.regファイルを使用してWindowsファイルの関連付けを削除します

質問:.regファイルを使用して、ファイルタイプの関連付けを完全に削除するにはどうすればよいですか?私は例えば試しました削除HKEY_CLASSES_ROOT\myextension_auto_fileしかし、それは明らかに十分ではありません。

背景:Windows Vistaでは、ファイルタイプを常に渡されるパラメーターを必要とする別のアプリケーションに正常に関連付ける.regファイルがあります(そのため、右クリックして関連付けるだけでは不十分でした 。regファイルを参照) )。ただし、何らかの理由で.regファイルは以前に関連付けられていないファイル拡張子でのみ機能するため、特定のファイルタイプの関連付けを最初に削除するコマンドをいくつか追加しようとしています。

12
Philipp Lenssen

問題のregファイルでHKEY_CLASSES_ROOTに書き込んでいるようです。このハイブは、HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classesのマージされたビューです。

以前に関連付けられていないファイルに対してのみファイルが機能する理由は、HKEY_CLASSES_ROOTredirectHKEY_LOCAL_MACHINEの適切なキー(システムのデフォルトおよびすべてのユーザー設定のハイブ)に書き込むためです。ただし、HKEY_CURRENT_USERのファイル関連付け設定(ユーザーごとの設定を含む)overrideシステムデフォルトのため、問題が発生します。

さらに、拡張子が「デフォルトプログラム」の関連付けによって制御されている場合、そのファイル関連付け情報はHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<.ext>に格納されます。そのキーの存在を確認することで、拡張機能にこの関連付けがあるかどうかを確認できます。

bothHKEY_LOCAL_MACHINEHKEY_CURRENT_USERのキーでそれを複製することにより、以前に関連付けられたファイルを含む任意のファイルで機能するように.regを編集できます。同様に、両方のハイブ(FileExtsの場所を含む)の適切なキーを削除することで、関連付けを削除できます。

特定の拡張子の関連付けを削除するための有効な.regファイルは次のようになります(.blerg関連付けを削除します)。

Windows Registry Editor Version 5.00

; Created with Default Programs Editor
; http://defaultprogramseditor.com/

; Delete Extension
[-HKEY_LOCAL_MACHINE\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.blerg]

ただし、レジストリの内部とWindowsファイルの関連付けのさまざまな難解な側面について学習する必要がない場合は、次のことをお勧めします。 デフォルトのプログラムエディターを使用してこれらの変更を行います。アクションを.regファイルにエクスポートすることもできます。あなたのニーズに完全に合うように。

Default Programs Editor delete extension and save as .reg file

あなたの場合、それはFile Type SettingsをクリックしてからDelete an extensionをクリックするのと同じくらい簡単です。拡張機能を選択し、レジストリに保存する代わりに、Delete Extensionボタンの小さな矢印を押して、Save to .reg file...をクリックします。これにより、このアクションの完全なコメント付きの.regファイルが作成され、他のマシンに保存または配布できます。

18
Factor Mystic

この質問には疑わしい多くの仮定があるようです。

まず、なぜ.regファイルを使用してファイルの関連付けを削除するのですか?なぜそれをユーザーインターフェイスから実行しないのですか?多くのワークステーションでこれを行っていますか?

次に、リンクした.regファイルが以前に関連付けられていないファイル拡張子でのみ機能する理由がわかりません。

とにかく、.regファイルを使用してキーを削除するには、キー名の前にハイフンを付けます。値を削除するには、値をハイフン記号に設定します。それはすべて綴られています ここ

ファイルの関連付けを削除するには、ファイル拡張子のキーを削除する必要があります。

[-HKEY_CLASSES_ROOT\.dat]

これだけではファイルを開くことができなくなりますが、完全を期すために、ファイル拡張子キーの下のデフォルト値であるタイプ名のキーも削除する必要があります。例:

[-HKEY_CLASSES_ROOT\dat_auto_file]
3
itsadok