ACTUALIZACIÓN ¡ Encontró un método burdo y poco elegante, pero funciona!
Guarde esto como paint.bat
en algún lugar de PATH, donde todos los usuarios lo encontrarán, como C: \ Windows:
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Guarde esto como replace_mspaint_with_paintdotnet.reg
y combínelo en el registro haciendo doble clic en él con el Explorador de Windows (requiere privilegios 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"
Ahora, al usar el menú contextual Editar en cualquiera de los tipos de archivos de imagen habituales, se utilizará PaintDotNet en lugar de MS Paint.
Deja de leer ahora a menos que seas del tipo al que le gustan los detalles arenosos.
Entre las utilidades enumeradas en las dos respuestas de @ Psycogeek, me encontré frustrantemente cerca de una solución completa, pero no lo suficientemente cerca. Estoy publicando el remedio parcial aquí en caso de que alguien más pueda proporcionar la pieza que falta.
La pestaña autoruns
Secuestros de imágenes muestra programas que fingen ser sus equivalentes de MS, ejemplos populares que utilizan este método son Notepad2 reemplazando Notepad y Process Explorer reemplazando Task Manager.
Hacer doble clic en uno de los secuestros, dice notepad2, abre la entrada relevante en Regedit. Exporté esa clave al disco y luego cambié las entradas del bloc de notas a entradas de paindotnet.
Combiné ese archivo .reg modificado, autoruns actualizados y, efectivamente, la nueva entrada mspaint está allí.
En este punto, cualquier llamada que solía ir a mspaint ahora se redirige a PaintDotNet.exe, ¡sí! p.ej:
- Inicio> Ejecutar> mspaint
mspaint
en un shell de comando
- Seleccione un foobar.jpg en el Explorador de Windows y use el menú contextual Editar
C:\Windows\system32\mspaint.exe
de donde sea
Desafortunadamente, en cada invocación, Paintdotnet dice que el tipo de imagen no se reconoce y no se puede abrir. :( :(
Algunas pruebas en la línea de comando revelan que obtengo el mismo error al pasar comillas vacías a PdN.
C:\> "C:\Program Files\Paint.NET\PaintDotNet.exe" " "
Entonces, por alguna razón, creo que la ruta del archivo de destino se está destrozando antes de que PdN lo vea. No he podido averiguar cómo ver qué está obteniendo PdN realmente y, por lo tanto, tal vez idear el remedio final.
Aquí está replace_mspaint_with_paintdotnet.reg
, que reemplaza mspaint.exe con PdN, y replica el error anterior:
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\""
Utilice esta depuración paint.bat
para capturar la línea de comando utilizada para iniciar el archivo por lotes en %TEMP%
:
@echo %* > "%temp%\%~nx0.txt"
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Añadiendo una línea como notepad %*
revela que la imagen no se reconoce el error se debe a que en el primer método NEM está tratando de cargar la real c: \ windows \ system32 \ MSPAINT.EXE como una imagen y no ve ningún otro parámetro. Por razones que no entiendo, el uso en %2
lugar de lo habitual %1
en el archivo por lotes funciona, pero no cuando se llama directamente a PdN.
¡Uf! Esta fue una pregunta difícil. Se agradecerán rotundamente las soluciones que no sean muy complicadas y que eviten la necesidad de un archivo por lotes. :)