2013年1月7日月曜日

パスとしてコピーを前面へ!さらにダブルクォーテーションの付かないパスをコピー⭐

パスとしてコピーのメニューは [Shift] + 右クリックで表示できます。

パスとしてコピー

しかし、この操作では片方の手をフトンから出さなければならず、とても寒いです。

そのまま前面に表示するのは少し難しいので、本来のメニューとは別に Shell コマンドで実装することにより、ダブルクォーテーションの付かないパスをコピーできます。

【2023年】Windows 10 のパスのコピー[Shift]なしで表示する方法

  1. レジストリのキーを作成します。

    HKCU\Software\Classes\AllFilesystemObjects\shell\CopyPath\command

    HKCU\Software\Classes\AllFilesystemObjects\shell\CopyPath\command

  2. command キーの既定のデータを入力します。

    cmd.exe /c @echo %1|clip

    commandキーを選択 cmd.exe /c @echo %1|clip

スペースを含んだパスもコピーできます。

"%1" にすると""で囲んだパスがコピーされます。

HKCU を HKLM にするとすべてのユーザーが対象になります。

元に戻すには追加したキーや値を削除します。

一瞬コマンドウィンドウが開くのが惜しいですが、無理な体勢を強いられ、コーヒーをこぼし、静まりかえった冬の真夜中に絶叫するよりましです。

これだけでは味気ないので、項目名とアイコンをお好みで追加します。

  1. CopyPath キーを選択。

  2. Icon (文字列値)を作成して、データを shell32.dll,-243 にします。

  3. MUIVerb (文字列値)を作成して、データを @shell32.dll,-30328 にします。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\AllFilesystemObjects\shell\CopyPath]
"Icon"="shell32.dll,-243"
"MUIVerb"="@shell32.dll,-30328"

[HKEY_CURRENT_USER\Software\Classes\AllFilesystemObjects\shell\CopyPath\command]
@="cmd.exe /c @echo %1|clip"

Shift を押した時に同じ項目が 2 つ表示され、ショートカットキーも同じになっています。A を押すごとに、選択が切り替わり Enter で決定できます。

アイコンが付いているのがパスのみコピーで、本来のメニューは""で囲んだパスになります。

Shiftを押した状態の右クリックメニュー

"MUIVerb"="パスとしてコピー(&F)" … Fは空いているショートカットキー
"MUIVerb"="パスとしてコピー" … ショートカットキーなし
などにするとかぶらなくなります。

実用しているのは、もう少し工夫して表示位置が揃うようにしています。

[HKEY_CURRENT_USER\Software\Classes\AllFilesystemObjects\shell\CopyPath]
"Position"="bottom"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{F3D06E7C-1E45-4A26-847E-F9FCDEE59BE0}]
"flags"=dword:00000000

パスとしてコピーの表示位置を揃える

このコマンドは DLL ファイルの中に入っているため、パッチをあてずにそのまま前面に持ってくるのは不可能なため、新しく追加する形で実装しました。