UPDATE Fand eine rohe und unelegante Methode, aber es funktioniert!
Speichern Sie dies paint.bat
irgendwo in PATH, wo es von allen Benutzern gefunden wird, z. B. C: \ Windows:
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Speichern Sie diese Datei als replace_mspaint_with_paintdotnet.reg
und führen Sie sie mit einem Doppelklick im Windows Explorer in der Registrierung zusammen (Administratorrechte erforderlich):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\mspaint.exe]
"Debugger"="paint.bat"
Wenn Sie jetzt das Kontextmenü Bearbeiten für einen der üblichen Bilddateitypen verwenden, wird PaintDotNet anstelle von MS Paint verwendet.
Hören Sie jetzt auf zu lesen, es sei denn, Sie sind der Typ, der grobe Details mag.
Zwischen den in den beiden Antworten von @ Psycogeek aufgeführten Hilfsprogrammen kam ich einer vollständigen Lösung frustrierend nahe, aber nicht nahe genug. Ich poste das Teilrezept hier für den Fall, dass jemand anderes das fehlende Stück zur Verfügung stellen kann.
Auf der Registerkarte autoruns
Image Hijacks werden Programme angezeigt , die so tun, als wären sie MS-Äquivalente. Beliebte Beispiele für diese Methode sind Notepad2, das Notepad ersetzt, und Process Explorer, das den Task-Manager ersetzt.
Durch zweimaliges Klicken auf einen der Hijacks, z. B. notepad2, wird der entsprechende Eintrag in Regedit geöffnet. Ich habe diesen Schlüssel auf die Festplatte exportiert und dann die Notepad-Einträge in Paindotnet-Einträge geändert.
Ich habe die geänderte .reg-Datei zusammengeführt, Autoruns aktualisiert und sicher genug, dass der neue mspaint-Eintrag da ist.
Zu diesem Zeitpunkt wird jeder Anruf, der früher an mspaint ging, jetzt an PaintDotNet.exe umgeleitet, yay! z.B:
- Start> Ausführen> mspaint
mspaint
in einer Befehlsshell
- Wählen Sie im Windows Explorer eine foobar.jpg aus und verwenden Sie das Kontextmenü Bearbeiten
C:\Windows\system32\mspaint.exe
von überall
Leider sagt Paintdotnet bei jedem Aufruf: Der Bildtyp wird nicht erkannt und kann nicht geöffnet werden. :( :(
Einige Tests in der Kommandozeilen-Shell haben ergeben, dass ich denselben Fehler erhalte, wenn ich leere Anführungszeichen an PdN übergebe.
C:\> "C:\Program Files\Paint.NET\PaintDotNet.exe" " "
Ich denke, aus irgendeinem Grund wird der Pfad der Zieldatei entstellt, bevor PdN ihn sieht. Ich war nicht in der Lage herauszufinden, wie ich sehen kann, was PdN tatsächlich bekommt, und deswegen habe ich vielleicht das letzte Mittel entwickelt.
Hier ist replace_mspaint_with_paintdotnet.reg
, was mspaint.exe durch PdN ersetzt und den obigen Fehler reproduziert:
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\""
Verwenden Sie dieses Debugging paint.bat
, um die Befehlszeile zu erfassen, in der die Batchdatei gestartet wird %TEMP%
:
@echo %* > "%temp%\%~nx0.txt"
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Das Hinzufügen einer Zeile wie folgt notepad %*
zeigt an, dass der Fehler, dass das Bild nicht erkannt wurde, darauf zurückzuführen ist, dass PdN bei der ersten Methode versucht, die aktuelle Datei c: \ windows \ system32 \ mspaint.exe als Bild zu laden und keine anderen Parameter sieht. Aus Gründen, die ich nicht verstehe, funktioniert die Verwendung %2
anstelle der %1
in der Batch-Datei üblichen , aber nicht, wenn PdN direkt aufgerufen wird.
Wütend! Dies war eine schwierige Frage. Nicht kludgy Lösungen, die die Notwendigkeit einer Batch-Datei umgehen, werden rundweg geschätzt. :)