Eu tenho uma ferramenta que adicionei à subchave shell da chave de qualquer arquivo em HKEY_CLASSES_ROOT para que ela apareça no menu do botão direito de qualquer arquivo (também tenha isso no menu do diretório).
[HKEY_CLASSES_ROOT\*\shell\PathToClipboard]
@="Path -> Clipboard"
[HKEY_CLASSES_ROOT\*\shell\PathToClipboard\command]
@="C:\\Program Files (x86)\\PathToClipboard.exe %1"
A ferramenta nada mais faz do que copiar o parâmetro fornecido (o caminho do arquivo) para a área de transferência.
Isso funcionou por muito tempo, pelo menos desde o Win ME (pode ter sido recompilado desde então). Também funciona para win-7, mas com algumas peculiaridades: se o caminho do arquivo contiver espaços ou quaisquer outros caracteres não alfanuméricos, ele será abreviado para o nome de compatibilidade do DOS.
Por exemplo:C:\PROGRA~2\PATHTO~1.EXE
Existe uma maneira de contornar isso?
Se eu colocar "
o %1
caminho está correto, mas o Windows também passa "
para o programa (que eu não toquei há um bom tempo. Claro que poderia resolver isso na ferramenta, mas me pergunto se o comportamento bruto poderia ser corrigido no lado do Windows) .
Responder1
Se o nome do programa contiver espaços ou outros caracteres não alfanuméricos, ele será abreviado para o nome de compatibilidade do DOS.
@="C:\\Program Files (x86)\\PathToClipboard.exe %1"
As aspas devem estar em torno das partes individuais, não da string completa.
Neste caso particular, você deve citar apenas a primeira parte (nome do programa)ea sequência inteira:
@="\"C:\\Program Files (x86)\\PathToClipboard.exe\" %1"
Observação:
\
é usado para escapar das aspas internas (aquelas ao redor do nome do programa)- Se você também citar
%1
(o caminho do arquivo), ele adicionará as aspas quando o caminho do arquivo for passado para o programa, portanto, não cite esta parte.