Isso porque você não registrou o tipo de arquivo corretamente. Bem, tecnicamente, você não registrou seu "aplicativo" corretamente.
link \
Você registrou .int corretamente. .int
diz para chamar intfile
. No entanto, intfile é onde você coloca o aplicativo que lida com o arquivo! Então, o Shellex procura o intfile
e tudo o que ele encontra é uma string no campo padrão. Então a operação falha.
Como você deseja uma string lá, você precisa fornecer ao Shell um verbo padrão para executar. Sob o comando intfile
create shell \ open \. Digite o caminho completo para seu aplicativo, por exemplo, "% ProgramFiles% \ Notepad ++ \ Notepad ++. Exe" "% 1".
FileName é o caminho completo para o arquivo que você deseja fazer uma cópia, então você precisa de "% windir% e não WINDOWS.
Editar Eu não posso acreditar que estou concordando com este método. . .
Mas não conheço nenhuma maneira de adicionar isso sem escrever um programa. . .
edit2:
Ok,aquivamosnós.
Chave.int
temDefault(SZ)
=intfile
eTipodeContexto(SZ)=plain.text
.EmChave.int
,vocêteráasubchaveShellnew
.Opadrãodeveestarvazio.Façaumanovastringvazia(Reg_SZ)eparaovalorcolocadononomedoarquivo:'C:\windows\ShellNew\NewLocalizationFile'.
Emintfile
,torneopadrãoNewLocalizationFile.
Observeafaltadeaspasduplas.Agoraintfile
precisadasseguintessubchaves:shell
,façacomquesejaPadrão=open
.Emseguida,crieasubchaveopen
emshell.
Agora,crieasubchavecommand
sobaberto.
Coloqueocaminhocompletodoprogramasobastringcomaspas.ouseja,"c:\Program Files (x86)\Notepad++\notepad++.exe" "%1"
. Note que são aspas duplas.
Editar: 3
Então, parece que o OP encontrou um problema desconhecido e o resolveu dessa maneira.
Hrm ok figured it out! You were right mostly, and I was right a little. The problem was I had opened the file once and set the default program to notepad++ in the pop up dialogue. This created a key called int_auto_file. I went through the registry, very time consuming, and deleted all references to the .int extension. After that I rebuilt them and now it works perfectly.