すべてのファイルにプログラムを追加するにはどうすればよいですか?Windows 7で[...で開く]リストを右クリックしますか?
例えば; 私はHxD hexeditorで定期的にファイルを表示するのが好きです。これを行うファイルにはさまざまな種類があります。HxDがすべての単一ファイルの「...で開く」メニューにあるシステム上のすべての単一ファイルタイプにどのように追加しますか?
すべてのファイルにプログラムを追加するにはどうすればよいですか?Windows 7で[...で開く]リストを右クリックしますか?
例えば; 私はHxD hexeditorで定期的にファイルを表示するのが好きです。これを行うファイルにはさまざまな種類があります。HxDがすべての単一ファイルの「...で開く」メニューにあるシステム上のすべての単一ファイルタイプにどのように追加しますか?
回答:
短い答えは、非常に困難です。
より長い答え:
HKEY_CLASSES_ROOTの下のレジストリに、登録されている各ファイル拡張子のエントリがあります。処理する各ファイル拡張子に「OpenWithProdids」というキーを追加する必要があります。このキー内には、名前がHxDのProgIdである文字列値が必要です。
ただし、はるかに簡単な方法があります。HxDへのショートカットをC:\ Users \\ AppData \ Roaming \ Microsoft \ Windows \ SendToに置いた場合、システム内の任意のファイルを右クリックして、コンテキストメニューから[送信]-> [HxD]を選択できます。
これにはShellExViewツールを使用できます。
これはおそらく正しくありませんが、この方法で何かが機能するはずです。
REGEDIT4
[HKEY_CLASSES_ROOT\HxD]
[HKEY_CLASSES_ROOT\HxD\shell]
[HKEY_CLASSES_ROOT\HxD\shell\open]
[HKEY_CLASSES_ROOT\foo\shell\open\command]
@="\"C:\\Program Files\\Application\\HxD.exe\" \"%1\""
これを行うと、すべてのファイルタイプで表示されるコンテキストメニューが追加されます(ただし、実際に投稿した内容に含まれていない可能性があります)。HxDでファイルを開くことができます。
Vimはこれを行い、すべてのファイルタイプに対して「Edit with Vim」コンテキストメニューを提供します。
(同じ種類のことを実行できる他のレジストリキーもあります。)
もっと知識のある人が実際の実用的な解決策を考え出すことができるはずです。
不明なファイルタイプを開くと、デフォルトのプログラムリストが表示されます。ファイルが既に関連付けられている場合は、[プログラムから開く]メニューに移動する必要があります。それを展開すると、デフォルトのプログラムの完全なリストが表示されます。デフォルトプログラムのリストにfoobarを追加するバッチスクリプトのスニペット:
reg add "HKCU\Software\Classes\*\OpenWithList\foobar2000.exe" /f
reg add "HKCU\Software\Classes\Applications\foobar2000.exe\shell\open\command" /ve /d "\"%SCRIPTDIR%media\foobar2000\foobar2000.exe\" \"%%1\"" /f
これにより、コンテキストメニューに新しい[メモ帳で開く]アイテムが作成されます。「開く」は「送る」よりも直感的(かつ正確)です。また、サブメニューにドリルダウンする必要もありません。
右側のペインで(デフォルト)値をダブルクリックし、次のように入力します。
notepad.exe%1
これはWindows 8.1で機能するため、Windows 7については不明です。HxDへのパスがわからないため、以下に例を示します。以下のアプリケーションの場所を置き換え、Applications \ HxD.exeでHxD.exeを実行される実行可能ファイルの名前に置き換えます。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\HxD.exe]
[HKEY_CLASSES_ROOT\Applications\HxD.exe\shell]
[HKEY_CLASSES_ROOT\Applications\HxD.exe\shell\edit]
[HKEY_CLASSES_ROOT\Applications\HxD.exe\shell\edit\command]
@="C:\\Program Files (x86)\\HxD\\HxD.exe %1"
[HKEY_CLASSES_ROOT\Applications\HxD.exe\shell\open]
[HKEY_CLASSES_ROOT\Applications\HxD.exe\shell\open\command]
@="C:\\Program Files (x86)\\HxD\\HxD.exe %1"