Eu tenho um programa que é aberto com um atalho específico, mas o atalho parece enviar parâmetros para o aplicativo. Se eu for diretamente para o diretório de destino e clicar duas vezes, ele não funcionará. No entanto, se eu usar a linha de comando e transmitir um determinado argumento, o aplicativo será aberto corretamente.
Quero abrir certos tipos de arquivo usando o aplicativo, mas o aplicativo deve ter os parâmetros ou ele não funcionará. É possível fazer esse tipo de coisa?
Respostas:
Encontrei o mesmo problema que o @jtpereyda e a solução do @bobbymcr também não funcionou para mim. Eu estava tentando obter todos os parâmetros da linha de comando passados para os scripts node.js. sem precisar do node.exe no comando.
O problema é que, se você já associou o programa à extensão via
Open With
caixa de diálogo, criou uma associação de aplicativo, em vez de uma associação de extensão de arquivo, entre os dois. E as associações de aplicativos têm precedência.Se você não se importa de editar o registro, pode modificar a
(Default)
chave no seguinte caminho:HKEY_CLASSES_ROOT\Applications\node.exe\shell\open\command
Você deve substituir
node.exe
pelo aplicativo que está ajustando.Ou você pode simplesmente excluir a pasta do aplicativo
HKEY_CLASSES_ROOT\Applications
completamente da pasta e suaftype
associação começará a funcionar.Certifique-se de usar o
%*
que passará nos argumentos restantes não especificados da linha de comando ou nada. Se você"%2" "%3" "%4" "%5"
receber 5 parâmetros de cadeia de caracteres vazios passados para o seu aplicativo quando você não especificar nenhum argumento de linha de comando.Finalmente, se você não concorda em modificar o registro manualmente, pode usar uma ferramenta de freeware do Nirsoft - FileTypesManager - http://www.nirsoft.net/utils/file_types_manager.html
As associações de arquivos aparecerão no topo da lista, sem nenhum texto na primeira coluna de extensão. Apenas encontre o nome do executável na lista e selecione-o para modificar o
command line
campo para oopen
nome da ação.No windows7, as alterações foram refletidas imediatamente sem nenhuma reinicialização ou reinicialização do aplicativo. No entanto, o utilitário Nirsoft possui um recurso para "Atualizar a área de trabalho" em qualquer modificação, o que me leva a acreditar que talvez o Vista ou as versões anteriores do SO armazenem em cache os dados. Nesse caso, o utilitário seria uma aposta melhor; caso contrário, talvez você precise fazer logoff e logon para ver as alterações.
fonte
"C:\Program Files\nodejs\node.exe" "%1"%*
NOTA: o%*
valor NÃO está entre aspas e não tem espaço entre ele e a aspas duplas anteriores.HKEY_CLASSES_ROOT\.ulaw
no regedit, apenas no caso de.ulaw
extensão dos arquivos para os quais eu estava executando o procedimento.HKEY_CLASSES_ROOT
artigo. É um equívoco compreensível dado muito do próprio antecede a documentação da Microsoft a exibição mesclada para HKCR que foi introduzido por volta de Windows 2000.Você pode fazer isso com
assoc
eftype
no prompt de comando. Abra um prompt de comando elevado e tente o seguinte:Isso associará a
.xyz
extensãoMyProgram.exe
e passará a linha de comando/arg1 /arg2 [filename.xyz]
para o programa para executá-la.fonte
.ulaw
arquivossox
usando argumentos predefinidos. Observe que, além de excluir o aplicativo antigo, também excluí oHKEY_CLASSES_ROOT\.ulaw
que estava definindo o tipo de arquivo.assoc
eftype
são comandos herdados. Eles não foram atualizados para as extensões para associações de arquivos adicionadas no Windows XP, 7 e 8. Eles modificam apenas as chaves de associação de arquivo e ProgId na chave do sistema "HKLM \ Software \ Classes". Eles não lêem ou modificam as configurações de HKCU por usuário, que têm precedência, ou as subchaves mais recentes, como "Aplicativos" e "SystemFileAssociations", ou as chaves de recursos por aplicativo de "RegisteredApplications". Eles também não leem ou modificam a opção do usuário em "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts".A pessoa que faz a pergunta informa que a melhor resposta não funciona realmente.
Eu descobri isso no XP, o que pode se aplicar a sistemas operacionais posteriores.
Em um prompt do cmd, você precisa de dois comandos:
assoc
,ftype
.Esses dois podem mostrar o que está associado e, em seguida, editar a associação, mas há uma distorção, as instruções da MS parecem estar erradas / incompletas. Fui alertado para isso ao perceber um estilo de associação não documentado por aplicativos veteranos conhecidos, por quê?
Este exemplo permite que muitos argumentos sejam passados para o programa associado.
Não é um erro de digitação
"%1" "%*"
. A estrela percentual não funcionará sem a porcentagem anterior 1 .E isso entra no ar imediatamente, sem necessidade de sair etc.
Feito à direita, passará 3 para arg []
Ainda não o fizemos, mas as aspas externas a seguir passariam -m se o programa precisar de um sinalizador.
fonte
%1 %*
sem aspas !!! malditas janelasEu tive um problema semelhante com uma versão mais antiga do PSP com Windows7
Esta solução (altere a linha de comando shell \ open \ no Registro) funcionou, mas tinha que ter a sintaxe "C: \ MyFolderName \ PSP.EXE"% 1 SEM CITAÇÕES% 1, caso contrário, isso será interpretado como uma constante
fonte
Não é a melhor solução, mas a mais fácil é usar um arquivo em lotes.
Crie um arquivo bat como esse e defina o programa padrão para sua extensão de arquivo. E sim, a citação vazia após o início é necessária:
{app name} .bat
Exemplo:
BCompareEdit.bat
fonte
Aqui está uma extensão que parece fazer exatamente o que você deseja. Eu nunca o usei antes, mas parece ter boas críticas. deixe um comentário se houver problemas.
fonte
Faça um atalho do Windows e use o seguinte modelo:
fonte
xyz.jpg
?