web-dev-qa-db-ja.com

Windows 10で特定のファイル形式(およびそのファイル形式のみ)に関連付けられているアイコンを変更する方法

現在、私は崇高なテキストで開かれるさまざまなテキストファイル形式(.md、.txt、.taskpaper)を関連付けています。これにより、それらすべてに同じアイコンファイル、つまり崇高なテキストアイコンが割り当てられます。

各ファイル形式に独自のアイコンファイル(私が提供)を持たせるにはどうすればよいですか?

最初の試み

NirsoftのFileManTypeを使用して、いずれかのファイルタイプに関連付けられているアイコンを変更します。結果:それは崇高に開くすべてのファイルタイプのアイコンを変更します(私が望んでいたものではありません)

2回目の試み

今私は賢くしようとしました...

  • (1)ファイル形式ごとに崇高なexeのショートカットを作成
  • (2)各ショートカットに独自のアイコンを割り当て、ショートカットが受け入れた
  • (3)(たとえば).mdファイルを開くプログラムを独自の特別なショートカットなどに設定する...

今回はショートカットに含まれるアイコンを無視し、崇高なアイコンを残しました

何か案は?

10
Sam

Default Programs Editor を使用します。

特に、このエディタを使用すると、関連付けられたプログラムを保持したまま、単一のファイルタイプのアイコンを置き換えることができます。

これは基本的にはリンクのみの回答ですが、レジストリを直接編集せずにこれを行う他の方法は知りません。必要な特定の編集に興味がある場合は、Sysinternalsのprocmonを使用して、アイコンの変更中にレジストリアクティビティをキャプチャすることを検討してください。

Chocolatey Gallery で、デフォルトプログラムエディターのバージョン2.7.2675.2253(2013年2月15日金曜日から)をダウンロードできる場合があります。

5
Jens Ehrich

this MSDN の記事を参照できます

  1. HKEY_CLASSES_ROOT\.extensionにDefaultIconという名前のサブキーを作成します

  2. DefaultIconサブキーに、アイコンを含むファイルの完全修飾パスを指定するREG_SZタイプのデフォルト値を割り当てます。

  3. ログオフして再度ログインする

EDIT:Windows 10レジストリにはアプリごとに個別のエントリがあるように見えるので、たとえばNotepad ++ .icoを変更したかったので、 HKEY_CLASSES_ROOT\Notepad++_fileエントリを追加し、既存のDefaultIconパスを変更しました。これを追加するのを忘れました。コメントの1つ

4
Rithvik Vibhu

これは非常に難しく、非常に興味深い理由があります。

Windows Vista以降、ファイルタイプは主に「ユーザーの選択」オプション(FileTypesManインターフェイスから確認できます)によって管理されます。これは、プログラム、アイコン、メニューオプションなどを「ChromeHTML」などの1つのファイルタイプにバンドルします。当時は、単に新しいファイルタイプを作成し、特定のファイル拡張子のユーザー選択オプションを新しいタイプに変更することができましたが、今は状況が異なります。 Windows 8以降、システムはUser Choiceオプションに「ハッシュ」を導入しています。これは基本的に、ファイル拡張子をシステムUI以外のユーザーが変更できないようにするパスワードです。 FileTypesManやDefault Programs Editorなど、ほとんどすべてのファイルタイプ管理ツールは、そのパスワードを破ることができなかったため、ユーザーの選択を変更できませんでした。

私が知っている唯一の例外があります。これはSetUserFTAと呼ばれます。ツールの作成者はシステムを何らかの方法でリバースエンジニアリングし、ハッシュの作成に使用される正確なアルゴリズムを見つけたため、他の何も変更せずに、単一のファイル拡張子のユーザー選択を変更できます。このツールは、

https://kolbi.cz/blog/2017/10/25/setuserfta-userchoice-hash-defeated-set-file-type-associations-per-user/

したがって、今する必要があるのは、昔と同じように新しいファイルタイプを作成し、SetUserFTAを使用して拡張子を変更することだけです。

2
Mu-Tsun Tsai

複数のファイル拡張子が同じProgIdにマップされている場合、同じアイコンが使用されます。異なるファイルタイプ/拡張子に異なるアイコンが必要な場合は、異なるProgId名を割り当て、同じアプリケーションを「open」動詞に設定します。

例えば:

.mdがsublime_mdを指すようにする

.txtがsublime_txtを指すようにする

など...何百ものカスタムファイルタイプを作成する場合にのみ、面倒になります。

また、これらのProgId(sublime_txt、sublime_md、sublime)に割り当てられているプログラムはまったく同じで、 "DefaultIcon"の値のみが異なります。

HKCR\sublime_txt\DefaultIconデフォルトのビューを "path:\ texticon.dll"に設定します

HKCR\sublime_md\DefaultIconデフォルトのビューを "path:\ mdicon.dll"に設定します

サンプルREGファイルを使用してよりよく説明するには:

Windows Registry Editor Version 5.00

;For .md extension
;-----------------
[HKEY_CLASSES_ROOT\.md]
@="sublime_md"

[HKEY_CLASSES_ROOT\sublime_md\DefaultIcon]
@="c:\\mdicon.dll"

[HKEY_CLASSES_ROOT\sublime_md\Shell\open]
@="Open"

[HKEY_CLASSES_ROOT\sublime_md\Shell\open\command]
@="c:\\sublime.exe %1"


;For taskpaper extension
;-----------------------
[HKEY_CLASSES_ROOT\.taskpaper]
@="sublime_task"

[HKEY_CLASSES_ROOT\sublime_task\DefaultIcon]
@="c:\\taskicon.dll"

[HKEY_CLASSES_ROOT\sublime_task\Shell\open]
@="Open"

[HKEY_CLASSES_ROOT\sublime_task\Shell\open\command]
@="c:\\sublime.exe %1"
1
w32sh

私はこれを経験したばかりで、自分の具体的な解決策を共有したいと思いました。 Chrome表示するにはPDFファイルを使用するのが好きですが、すべてのPDFファイルがChrome Webページ、またはEdge Webページ!.pdfレジストリの変更が必要であるとは思いませんが、レジストリに2つの変更を加えました。

右クリックして、管理者としてRegeditを実行し、以下の2つのキーを追加します。

HKEY_CLASSES_ROOT>.pdf>
      (Default) = pdf_auto_file   [Locate this program name for step 2]
      DefaultIcon       [added this key to the .pdf]
         (Default) = C:\Windows\system32\Shell32.dll,75 [set the value of DefaultIcon]


HKEY_CLASSES_ROOT>
   pdf_auto_file>
      DefaultIcon       [add the DefaultIcon key to pdf_auto_file]
         (Default) = C:\Windows\system32\Shell32.dll,75  [set the value of DefaultIcon]

IconExplorer と呼ばれるシェアウェアプログラムを使用して、気に入ったアイコンを見つけ、正しいパスを取得しました。

0
Jeff Sadar