อัปเดตพบวิธีการที่ดิบและไม่เหมาะสม แต่ใช้งานได้!
บันทึกสิ่งนี้เป็นที่paint.bat
ใดที่หนึ่งใน PATH ซึ่งผู้ใช้ทุกคนจะพบได้เช่น C: \ Windows:
@start /b "Paint" "c:\Program Files\Paint.NET\PaintDotNet.exe" %2
บันทึกเป็นreplace_mspaint_with_paintdotnet.reg
และรวมเข้าในรีจิสทรีโดยดับเบิลคลิกที่มันด้วย Windows Explorer (ต้องใช้สิทธิ์ผู้ดูแลระบบ):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\mspaint.exe]
"Debugger"="paint.bat"
ตอนนี้ใช้เมนูแก้ไขบริบทกับไฟล์รูปภาพประเภทใดก็ตามปกติจะใช้ PaintDotNet แทน MS Paint
หยุดอ่านเดี๋ยวนี้ยกเว้นว่าคุณเป็นคนที่ชอบรายละเอียด
ระหว่างยูทิลิตี้ที่ระบุไว้ในคำตอบของ @ Psycogeek ทั้งคู่ฉันเข้าใกล้โซลูชันที่สมบูรณ์ แต่ไม่ใกล้พอ ฉันโพสต์การแก้ไขบางส่วนที่นี่ในกรณีที่คนอื่นสามารถให้ชิ้นส่วนที่ขาดหายไป
autoruns
ภาพ hijacksโปรแกรมแท็บการแสดงซึ่งเป็นที่ทำท่าจะเป็นของพวกเขา MS เทียบเท่าตัวอย่างที่นิยมใช้วิธีการนี้จะNotepad2 แทนที่ NotepadและProcess Explorerเปลี่ยนที่ Task Manager
การคลิก 2 ครั้งบนหนึ่งใน hijacks notepad2 พูดจะเปิดรายการที่เกี่ยวข้องใน Regedit ฉันส่งออกคีย์นั้นไปยังดิสก์จากนั้นเปลี่ยนรายการ notepad เป็นรายการ paindotnet
ฉันรวมที่มีการเปลี่ยนแปลง. reg ไฟล์รีเฟรชอัตโนมัติและมีรายการ mspaint ใหม่ที่นั่น
ณ จุดนี้การโทรใด ๆ ที่เคยไปที่ mspaint จะถูกนำไปยัง PaintDotNet.exe ตอนนี้! เช่น:
- เริ่ม> เรียกใช้> mspaint
mspaint
ในเชลล์คำสั่ง
- เลือกfoobar.jpgใน Windows Explorer และใช้เมนูแก้ไขบริบท
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 ถูกเรียกโดยตรง
ต๊าย! นี่เป็นสิ่งที่ยากมาก โซลูชันที่ไม่ใช่ kludgy ซึ่งข้ามความต้องการแบตช์ไฟล์จะได้รับการชื่นชมอย่างรอบด้าน :)