ฉันจะไม่แนะนำวิธีแก้ปัญหาในคำตอบของฉันเพราะสิ่งที่ดีที่สุดที่คุณสามารถทำได้โดยไม่ใช้เครื่องมือของบุคคลที่สามน่าจะเป็นคำตอบของ PIMP_JUICE_IT (แม้ว่าคำตอบนั้นเป็นเพียงการเพิ่มคำกริยาเสริมใหม่และไม่มีอะไรเกี่ยวข้องกับ Windows "เปิดด้วย ฟังก์ชั่นและควรตั้งชื่อตาม)
อย่างไรก็ตามฉันจะพยายามอธิบายรายละเอียดทางเทคนิคเกี่ยวกับสิ่งที่เกิดขึ้นและสาเหตุ:
"เปิดด้วย" เมนูย่อยจะดำเนินการเป็นส่วนขยาย IContextMenu เปลือกHKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
และมีการลงทะเบียนภายใต้ เมื่อคุณคลิกขวาที่รายการหนึ่งรายการขึ้นไปในโฟลเดอร์เชลล์เชลล์จะพิจารณาคีย์ต่างๆภายใต้HKEY_CLASSES_ROOT
เพื่อสร้างเมนู รายการภายใต้...\shellex\ContextMenuHandlers
เป็นแบบไดนามิกและเรียกใช้รหัสคอมพิวเตอร์จริงที่กำหนดจำนวนรายการเมนูที่จะเพิ่ม (ถ้ามี)
ดูเหมือนว่า Microsoft จะเข้ารหัสส่วนขยาย "เปิดด้วย" เพื่อเพิ่มเมนูย่อยเมื่อคุณเลือกไฟล์เดียวโดยมีข้อยกเว้นหนึ่งข้อ สามารถเลือกหลายทางลัด (.lnk) และคุณจะยังคงได้รับเมนูย่อย (อย่างน้อยในเครื่อง Windows 8 ของฉัน) ฉันจะออกไปที่ขาและบอกว่าการจัดการทางลัดเป็นข้อบกพร่อง
ไม่มีเหตุผลทางเทคนิคว่าทำไมเมนูไม่สามารถใช้งานได้กับหลายไฟล์และอันที่จริงมันใช้งานได้ดีบน Windows XP
ฉันเดาเหตุผลหลักที่พวกเขาลบมันคือ; คุณจะทำอย่างไรเมื่อผู้ใช้เลือกไฟล์ประเภทต่าง ๆ ? อย่างไรก็ตามมีแบบอย่างนี้อยู่แล้ว; คุณสามารถเลือกไฟล์ประเภทต่าง ๆ แล้วกด Enter เพื่อเปิดไฟล์ทั้งหมด เมื่อคุณทำเช่นนี้เชลล์จะใช้การกระทำที่เกี่ยวข้องกับรายการที่มีกรอบโฟกัส
เป็นไปได้สำหรับผู้จำหน่ายซอฟต์แวร์บุคคลที่สามในการสร้างเมนูที่คล้ายกันซึ่งใช้งานได้กับหลายไฟล์ ข้อ จำกัด เพียงอย่างเดียวคือรายการ "เลือกแอปอื่น" / "เลือกโปรแกรมเริ่มต้น" ที่ด้านล่างของเมนูอาจจะต้องปิดการใช้งานเมื่อมีหลายไฟล์เนื่องจากวิธีที่เป็นทางการในการเรียกใช้กล่องโต้ตอบรองรับเส้นทางไฟล์เดียวเท่านั้น เพื่อเติมเมนูมันก็จะใช้SHAssocEnumHandlersเพื่อสร้างรายการของแอปพลิเคชันที่มีอยู่สำหรับประเภทไฟล์ที่ระบุ
นี่เป็นกรณีที่ไม่มีใครใช้เวลาในการติดตั้งส่วนขยาย "เปิดด้วย" อีกครั้งเพื่อรองรับไฟล์หลายไฟล์แม้ว่าจะเป็นไปได้ในทางเทคนิคที่จะทำเช่นนั้น ...