Nome do arquivo sem extensão como variável de chave do registro (windows 7)

0

Eu tenho o seguinte problema no Windows 7. Estou tentando criar um menu de contexto para clicar com o botão direito em arquivos de um tipo específico, digamos *.hyb , ou seja, quando clico com o botão direito nesse tipo de arquivo ( como filename.hyb ), uma opção no menu como "Executar com MyAplicativo", e quando clico nele eu quero que o comando "Myapplication.exe filename" seja executado.

Eu consegui criar o menu de contexto para este arquivo específico, mas o problema é que o nome do arquivo é passado como um argumento para Myapplication.exe com sua extensão. Myapplication.exe não pode lidar com extensões de arquivo, então eu preciso removê-lo. Minha chave de registro (armazenada em HKEY_CURRENT_USER\Software\Classes\hyb_auto_file\shell\Myapplication\command ) tem o valor C:\SomeFolder\Myapplication.exe %1

Posso ajustar o parâmetro %1 para que o nome do arquivo seja passado sem sua extensão?

Muito obrigado!

    
por Christos Liontas 19.12.2013 / 10:14

1 resposta

0

Não funciona para gravar "% ~ dpn1" no registro.

Você pode chamar um arquivo de comando CMD que corta a extensão e chama seu aplicativo:

Conteúdo do arquivo hyb.cmd :

echo on

myApp.exe "%~dpn1"

"% ~ dpn1" tomará drive + caminho + nome do parâmetro 1 e deixará de fora a extensão.

Arquivo de definição de registro hyb.reg para chamar este script:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.hyb]

[HKEY_CLASSES_ROOT\.hyb\shell]

[HKEY_CLASSES_ROOT\.hyb\shell\open hyb file]

[HKEY_CLASSES_ROOT\.hyb\shell\open hyb file\command]
@="cmd.exe /c hyb.cmd \"%1\""

Observe que o Windows fornece comandos úteis para manter associações de arquivos da linha de comando sem tocar no registro. Pergunte ao Google por ASSOC e FTYPE .

    
por 19.12.2013 / 11:04