UPDATE Encontrou um método bruto e deselegante, mas funciona!
Salve isso como paint.bat
em algum lugar no PATH, onde ele será encontrado por todos os usuários, como C: \ Windows:
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Salve isso como replace_mspaint_with_paintdotnet.reg
e mescle-o no registro clicando duas vezes nele com o Windows Explorer (requer privilégios de administrador):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\mspaint.exe]
"Debugger"="paint.bat"
Agora, usando o menu de contexto Editar em qualquer um dos tipos de arquivo de imagem usuais, o PaintDotNet será usado em vez do MS Paint.
Pare de ler agora, a menos que você seja do tipo que gosta de detalhes sutis.
Entre os utilitários listados nas duas respostas do @ Psycogeek, cheguei frustrantemente perto de uma solução completa, mas não perto o suficiente. Estou postando o remédio parcial aqui no caso de alguém poder fornecer a peça que faltava.
A guia autoruns
Hijacks de Imagens mostra programas que estão fingindo ser seus equivalentes em MS, exemplos populares usando este método são Notepad2 substituindo o Bloco de Notas e Process Explorer substituindo o Gerenciador de Tarefas.
Clicar duas vezes em um dos hijacks, diz o notepad2, abre a entrada relevante no Regedit. Eu exportei essa chave para o disco e alterei as entradas do bloco de notas para entradas paindotnet.
Eu mesclei esse arquivo .reg alterado, atualizei o Autoruns e, com certeza, a nova entrada mspaint está lá.
Neste ponto, qualquer chamada que costumava ir para mspaint agora é redirecionada para o PaintDotNet.exe, yay! por exemplo:
-
Iniciar > Executar > mspaint
-
mspaint
em um shell de comando
- Selecione um foobar.jpg no Windows Explorer e use o Editar menu de contexto
-
C:\Windows\system32\mspaint.exe
de qualquer lugar
Infelizmente, em todas as invocações, o Paintdotnet diz O tipo de imagem não é reconhecido e não pode ser aberto. :(: (
Alguns testes no shell da linha de comando revelam que recebo o mesmo erro passando aspas vazias para PdN.
C:\> "C:\Program Files\Paint.NET\PaintDotNet.exe" " "
Então, acho que por algum motivo o caminho do arquivo de destino está sendo desconfigurado antes que o PdN o veja. Eu não consegui descobrir como ver o que a PdN está realmente conseguindo e, portanto, talvez, inventar o remédio final.
Aqui está replace_mspaint_with_paintdotnet.reg
, que substitui mspaint.exe por PdN e replica o erro acima:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\mspaint.exe]
"Debugger"="\"C:\Program Files\Paint.NET\PaintDotNet.exe\""
Use esta depuração paint.bat
para capturar a linha de comando usada para iniciar o arquivo em lote em %TEMP%
:
@echo %* > "%temp%\%~nx0.txt"
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
A adição de uma linha como notepad %*
revela que o erro de imagem não reconhecida é porque no primeiro método o PdN está tentando carregar o real c: \ windows \ system32 \ mspaint.exe como uma imagem e nunca vê nenhum outro parâmetro. Por razões que eu não entendo usando %2
em vez do usual %1
no arquivo de lote funciona, mas não quando o PdN é chamado diretamente.
Ufa! Este foi um duro. Soluções não-kludgy que ignoram a necessidade de um arquivo em lote serão muito apreciadas. :)