AGGIORNAMENTO Trovato un metodo grezzo e non elegante, ma funziona!
Salvalo come paint.bat
da qualche parte nel PERCORSO, dove verrà trovato da tutti gli utenti, come C: \ Windows:
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Salvalo come replace_mspaint_with_paintdotnet.reg
e uniscilo al registro facendo doppio clic su di esso con Windows Explorer (richiede i privilegi di amministratore):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\mspaint.exe]
"Debugger"="paint.bat"
Ora usando il menu di scelta rapida Modifica su uno dei soliti tipi di file immagine, verrà utilizzato PaintDotNet anziché MS Paint.
Smetti di leggere ora a meno che tu non sia il tipo a cui piacciono i dettagli grintosi.
Tra le utility elencate in entrambe le risposte di @ Psycogeek mi sono avvicinata frustrantemente a una soluzione completa, ma non abbastanza vicina. Sto pubblicando qui il rimedio parziale nel caso in cui qualcun altro possa fornire il pezzo mancante.
La scheda autoruns
Dirottamenti immagine mostra i programmi che fingono di essere i loro equivalenti MS, esempi popolari che utilizzano questo metodo sono Notepad2 che sostituisce Notepad e Process Explorer che sostituisce Task Manager.
Fare doppio clic su uno dei dirottamenti, ad esempio notepad2, apre la voce pertinente in Regedit. Ho esportato quella chiave su disco, quindi ho modificato le voci del blocco note in voci paindotnet.
Ho unito il file .reg modificato, i Autoruns aggiornati e sicuramente la nuova voce di mspaint è lì.
A questo punto qualsiasi chiamata che andava a mspaint ora viene reindirizzata a PaintDotNet.exe, yay! per esempio:
- Start> Esegui> mspaint
mspaint
in una shell dei comandi
- Seleziona un foobar.jpg in Esplora risorse e usa il menu contestuale Modifica
C:\Windows\system32\mspaint.exe
da qualsiasi luogo
Sfortunatamente, ad ogni chiamata Paintdotnet dice che il tipo di immagine non è riconosciuto e non può essere aperto. :( :(
Alcuni test nella shell della riga di comando rivelano che ottengo lo stesso errore passando virgolette vuote a PdN.
C:\> "C:\Program Files\Paint.NET\PaintDotNet.exe" " "
Quindi, per qualche motivo, penso che il percorso del file di destinazione venga alterato prima che PdN lo veda. Non sono stato in grado di capire come vedere cosa sta effettivamente ricevendo PdN e quindi forse escogitare il rimedio finale.
Ecco replace_mspaint_with_paintdotnet.reg
, che sostituisce mspaint.exe con PdN e replica l'errore sopra:
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\""
Utilizzare questo debug paint.bat
per acquisire la riga di comando utilizzata per avviare il file batch in %TEMP%
:
@echo %* > "%temp%\%~nx0.txt"
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
L'aggiunta di una riga come notepad %*
quella rivela che l'errore non riconosciuto dall'immagine è dovuto al fatto che nel primo metodo PdN sta tentando di caricare l' attuale c: \ windows \ system32 \ mspaint.exe come immagine e non vede mai altri parametri. Per motivi che non capisco usare al %2
posto del solito %1
nel file batch funziona, ma non quando PdN viene chiamato direttamente.
Meno male! Questa è stata dura. Saranno ampiamente apprezzate le soluzioni non kludgy che aggirano la necessità di un file batch. :)