ОНОВЛЕННЯ Знайдено сирий і неелегантний метод, але він працює!
Збережіть це як paint.bat
десь у PATH, де його знайдуть усі користувачі, наприклад C: \ Windows:
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Збережіть це як replace_mspaint_with_paintdotnet.reg
і об'єднайте його в реєстр, двічі клацнувши на ньому за допомогою Провідника Windows (потрібні права адміністратора):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\mspaint.exe]
"Debugger"="paint.bat"
Тепер, використовуючи контекстне меню Правка на будь-якому з звичайних типів файлів зображень, замість MS Paint буде використовуватися PaintDotNet.
Перестаньте читати зараз, якщо ви не тип, який любить дрібні деталі.
Між утилітами, переліченими в обох відповідях @ Psycogeek, я невдоволено наблизився до повного рішення, але недостатньо близько. Я розміщую тут частковий засіб на випадок, якщо хтось може надати відсутні деталі.
На вкладці autoruns
Image Hijacks показано програми, які претендують на їх еквіваленти MS, популярними прикладами цього методу є Notepad2, що замінює Notepad та Process Explorer замінює диспетчер завдань.
2x натискання на один із викрадень, скажімо, notepad2, відкриває відповідний запис у Regedit. Я експортував цей ключ на диск, а потім змінив записи блокнота на записи paindotnet.
Я з’єднав цей змінений файл .reg, оновив Autoruns і досить впевнений, що там є новий запис mspaint.
На даний момент будь-який виклик, який раніше переходив на mspaint, тепер перенаправляється на PaintDotNet.exe, так! наприклад:
- Пуск> Виконати> mspaint
mspaint
в командній оболонці
- Виберіть foobar.jpg у Провіднику Windows і скористайтесь Редагуванням контекстним меню
C:\Windows\system32\mspaint.exe
з будь-якого місця
На жаль, під час кожного виклику Paintdotnet каже, що тип зображення не розпізнається та не може бути відкритий.:( :(
Деякі випробування в оболонці командного рядка виявляють, що я отримую ту ж помилку, передаючи порожні лапки в PdN.
C:\> "C:\Program Files\Paint.NET\PaintDotNet.exe" " "
Тож я думаю, чомусь шлях до цільового файлу заплутується до того, як його побачить PdN. Мені не вдалося розібратися, як побачити, що насправді отримує PdN, і, можливо, розробити остаточний засіб захисту.
Ось replace_mspaint_with_paintdotnet.reg
що замінює mspaint.exe на PdN і повторює помилку вище:
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\""
Використовуйте цю налагодження, paint.bat
щоб захопити командний рядок, який використовується для запуску пакетного файлу у %TEMP%
:
@echo %* > "%temp%\%~nx0.txt"
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
Додавання рядка на зразок notepad %*
показує, що помилка зображення не розпізнається через те, що в першому методі PdN намагається завантажити фактичне зображення c: \ windows \ system32 \ mspaint.exe як зображення і ніколи не бачить жодних інших параметрів. З причин я не розумію використання %2
замість звичного%1
у пакетному файлі працює, але не тоді, коли PdN викликається безпосередньо.
Вау! Це було важко. Неспроможні рішення, що обминають потребу в пакетному файлі, будуть оцінені в усьому рівні. :)