MISE À JOUR J'ai trouvé une méthode grossière et inélégante, mais ça marche!
Enregistrez-le paint.bat
quelque part dans PATH, où il sera trouvé par tous les utilisateurs, tels que C: \ Windows:
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Enregistrez-le sous replace_mspaint_with_paintdotnet.reg
et fusionnez-le dans le registre en double-cliquant dessus avec l'Explorateur Windows (nécessite des privilèges d'administrateur):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\mspaint.exe]
"Debugger"="paint.bat"
Maintenant, en utilisant le menu contextuel Modifier sur l'un des types de fichiers d'image habituels, PaintDotNet utilisera MS Paint.
Arrêtez de lire maintenant, sauf si vous êtes du genre à aimer les détails granuleux.
Entre les utilitaires répertoriés dans les deux réponses de @ Psycogeek, je me suis frotté à une solution complète, mais pas assez. Je poste le remède partiel ici au cas où quelqu'un d'autre pourrait fournir la pièce manquante.
L' onglet autoruns
Image Hijacks affiche les programmes qui prétendent être leurs équivalents MS, des exemples populaires utilisant cette méthode sont Notepad2 remplaçant Notepad et Process Explorer remplaçant le Gestionnaire des tâches.
2x-cliquer sur l'un des détournements, notepad2 disons, ouvre l'entrée pertinente dans Regedit. J'ai exporté cette clé sur le disque, puis changé les entrées du bloc-notes en entrées paindotnet.
J'ai fusionné ce fichier .reg modifié, actualisé les Autoruns, et bien sûr la nouvelle entrée mspaint est là.
À ce stade, tout appel qui était utilisé pour mspaint est maintenant redirigé vers PaintDotNet.exe, yay! par exemple:
- Démarrer> Exécuter> mspaint
mspaint
dans un shell de commande
- Sélectionnez un foobar.jpg dans l'Explorateur Windows et utilisez le menu contextuel Modifier
C:\Windows\system32\mspaint.exe
de partout
Malheureusement, à chaque appel, Paintdotnet indique que le type d'image n'est pas reconnu et ne peut pas être ouvert. :( :(
Certains tests dans le shell de ligne de commande révèlent que j'obtiens la même erreur en passant des guillemets vides à PdN.
C:\> "C:\Program Files\Paint.NET\PaintDotNet.exe" " "
Je pense donc que pour une raison quelconque, le chemin du fichier cible est modifié avant que PdN ne le voit. Je n'ai pas été en mesure de comprendre comment voir ce que PdN obtient réellement, et donc peut-être concevoir le remède final.
Voici replace_mspaint_with_paintdotnet.reg
, qui remplace mspaint.exe par PdN et reproduit l'erreur ci-dessus:
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\""
Utilisez ce débogage paint.bat
pour capturer la ligne de commande utilisée pour démarrer le fichier de commandes dans %TEMP%
:
@echo %* > "%temp%\%~nx0.txt"
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Ajout d' une ligne comme notepad %*
révèle que l'image ne erreur reconnue est parce que dans la première méthode PdN tente de charger le réel c: \ windows \ system32 \ MSPAINT.EXE comme une image et ne voit jamais d'autres paramètres. Pour des raisons que je ne comprends pas, utiliser à la %2
place de l'habituel %1
dans les fichiers batch, mais pas lorsque PdN est appelé directement.
Ouf! Ce fut difficile. Les solutions non kludgy qui contournent la nécessité d'un fichier de commandes seront globalement appréciées. :)