ฉันจะเชื่อมโยงเมนูบริบทหลายประเภทสำหรับส่วนขยายไฟล์เดียวในรีจิสทรีได้อย่างไร


5

ฉันต้องการเพิ่มตัวเลือกเมนูบริบทที่กำหนดเองสำหรับนามสกุลไฟล์บางไฟล์ (เช่น. zip) สำหรับโปรแกรมที่ฉันกำลังพัฒนา อย่างไรก็ตามในพีซีจำนวนมาก (แต่ไม่ใช่ทั้งหมด) ซอฟต์แวร์ของฉันจะถูกติดตั้งใน 7-Zip ได้รับการติดตั้งเช่นกันดังนั้น [HKEY_CLASSES_ROOT.zip] จึงอ้างถึง [HKEY_CLASSES_ROOT \ 7-Zip.zip] ในรีจิสทรี

เนื่องจากฉันไม่ต้องการยุ่งเกี่ยวกับการติดตั้ง 7-Zip ดั้งเดิมฉันแค่ต้องการเพิ่มตัวเลือกเมนูบริบทของฉันที่ด้านบน อย่างไรก็ตามรายการใน [HKEY_CLASSES_ROOT.zip \ shell] ไม่มีผลและฉันไม่รู้ว่าฉันจะสามารถเชื่อมโยง [HKEY_CLASSES_ROOT.zip] ไปที่ [HKEY_CLASSES_ROOT \ MyApp.zip] ได้เนื่องจากค่าเริ่มต้นของ [HKEY_CLASSES_ROOT.zip] นั้นถูกใช้ไปแล้ว โดย 7-Zip

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก :)


ดูว่าคุณสามารถค้นหาส่วนขยายอื่นสำหรับชนิดไฟล์ที่มีลักษณะการทำงานที่คุณต้องการและใช้เป็นเทมเพลตสำหรับสิ่งที่คุณพยายามทำ
martineau

ปัญหาคือตัวอย่างอื่น ๆ ที่ฉันพบไม่ชอบ 7-Zip ตัวอย่างเช่น Gimp เพิ่งเขียนตัวเองลงใน [HKEY_CLASSES_ROOT \ pngfile \ shell] สำหรับรายการเมนูบริบทสำหรับ. pngs มันดูเหมือนว่า 7-Zip การจัดเรียงของ hijacks นามสกุล .zip และผมไม่ทราบวิธีแก้ปัญหา แต่จำเป็นต้องใช้ ...
เซบาสเตียน

คำตอบ:


1

ถ้า.zipไฟล์เป็นกังวลเท่านั้นของคุณคุณได้อย่างปลอดภัยอาจใช้[HKEY_CLASSES_ROOT\CompressedFolder]กุญแจ

นี่เป็นเพราะ Windows ใช้คีย์นี้ในการ.zipทำงานที่เกี่ยวข้องและผลิตภัณฑ์ซอฟต์แวร์ของบุคคลที่สาม (รวมถึง 7zip) ส่วนใหญ่มักจะแบ่งปันคีย์นี้กับ Microsoft จะช่วยให้นักพัฒนาสามารถเพิ่มฟังก์ชั่นของตัวเองในขณะที่การจัดการ.zipไฟล์"เหมือนโฟลเดอร์" ของ Windows ดั้งเดิม

มันแปลกว่าที่คุณค่าเริ่มต้นหมายถึง[HKEY_CLASSES_ROOT\.zip] [HKEY_CLASSES_ROOT\7-Zip.zip]ยังเป็นไปได้ว่าแม้กระทั่งเวอร์ชั่นเก่าเหล่านั้นก็ยังตั้ง[HKEY_CLASSES_ROOT\CompressedFolder]รายการที่ถูกต้อง- คุณต้องตรวจสอบ


นี่ไม่ใช่สิ่งที่ฉันต้องการ
eramit2010

0

จากสิ่งที่ฉันสังเกตเห็นในคอมพิวเตอร์ของฉันคุณอาจ "จี้" .zipส่วนขยายได้อย่างปลอดภัย

ฉันได้ติดตั้ง WinZip ก่อน 7Zip ดังนั้นจึงเป็น WinZip ที่เข้าควบคุม.zipส่วนขยายในขณะที่ 7Zip ปล่อยให้เป็นอิสระอย่างเดียว

อย่างไรก็ตาม 7Zip ยังคงทำงานได้อย่างสมบูรณ์แบบสำหรับฉันสำหรับ.zipไฟล์เพราะมันยังติดตั้งส่วนขยายทั่วไปสำหรับไฟล์ทุกประเภทที่จับ.zipไฟล์ได้ (อื่น ๆ )

ผลในความคิดของฉัน 7Zip พาไปยัง.zipส่วนขยายเป็น overkill


แต่มันจะแสดงเมนูบริบทของเฉพาะล่าสุดหรือพูดแอปเริ่มต้น ฉันต้องการแสดงเมนูบริบทของทั้งสอง
eramit2010

มันแสดงทั้ง ฉันมีทั้ง WinZip และ 7Zip แสดงสำหรับไฟล์. zip: WinZip ผ่านHKEY_CLASSES_ROOT\.zipและ 7Zip ผ่านส่วนขยายทั่วไป แนวคิดอื่นสำหรับคุณคือการพัฒนาส่วนขยายทั่วไป / catch-all โดยไม่ต้องไฮแจ็ก ข้อเสียคือตัวจัดการของคุณจะถูกเรียกใช้สำหรับการคลิกขวาที่ไฟล์ทั้งหมด (ซึ่งสามารถตัดสินใจที่จะไม่แสดงสิ่งใดสำหรับไฟล์ที่ไม่ใช่ไฟล์ซิป) ข้อดีคือคุณไม่แตะต้อง 7Zip ในรีจิสตรี
harrymc

ฉันรู้เกี่ยวกับส่วนขยายทั้งหมด แต่นั่นไม่ใช่วิธีแก้ปัญหาที่เหมาะสมสำหรับปัญหาของฉัน ฉันต้องการเพิ่มรายการใหม่ในเมนูคลิกขวาของไฟล์. zip โดยใช้ registry ฉันสามารถทำได้โดยเพิ่มลงในรีจิสทรีของแอปพลิเคชันเริ่มต้น เมนูจะไม่แสดงหลังจากติดตั้งแอปพลิเคชันอื่น
eramit2010

ฉันได้แสดงไว้ที่นี่สองวิธีแก้ปัญหาที่ฉันรู้เกี่ยวกับ: หักหลังไฟล์นามสกุลหรือ catch-all ฉันไม่รู้วิธีที่สาม
harrymc

ขอบคุณสำหรับวิธีแก้ปัญหาที่สอง แต่ฉันรู้แล้วเหล่านี้
eramit2010

-3

ตกลงฉันจะลองพูดแบบนี้ง่ายๆ .. ก่อนอื่นใน HKCR ให้สร้างรหัสสำหรับโปรแกรมของคุณ (คำแนะนำเพียงแค่คัดลอกและเปลี่ยนชื่อหนึ่ง .. ) มันต้องมีขั้นต่ำ 3 ส่วน CFG.File \ shell \ Open \ command (ค่าเริ่มต้น) "% 1"

3 คือ: ProgID ในตัวอย่างของฉันมันคือ CFG.File Action ในตัวอย่างของฉันมันเป็นคำสั่งของเชลล์ที่จะเปิด (และคุณเพิ่ม "% 1" เพื่อรวมวัตถุของคุณ)

ถัดไปคุณต้องสร้างหากไม่มีอยู่คีย์นี้ในประเภทไฟล์ OpenWithProgids ตอนนี้เป็นเคล็ดลับ: สร้างคีย์ออกจาก OpenWithProgids เรียกว่าแชร์

รหัสที่ใช้ร่วมกันบอกให้ Windows ไม่อนุญาตให้ ProgID ควบคุมหรือกลายเป็นค่าเริ่มต้น

ตอนนี้สิ่งที่คุณต้องทำก็คือเพิ่ม ProgID ที่คุณทำไว้ใน HKCR เพิ่มชื่อให้กับ OpenWithProgids คุณสามารถเลือก: รายการไบนารีหรือสตริงที่แปลกตา คุณจะต้องตั้งชื่อมันและไม่มีค่า

ฉันไม่ได้ครอบคลุมตัวเลือกทั้งหมดสำหรับ UI และ Eye Candy แต่ฉันต้องเพิ่มสิ่งนี้เป็นความคิดสุดท้าย: หากประเภทไฟล์หรือคีย์ใด ๆ มีรายการ EditFlags - เปลี่ยนชื่อหรือการแก้ไขของคุณจะไม่แสดง ...

โอ้คำแนะนำสุดท้ายข้อหนึ่ง: หากคุณมีปัญหาในการพยายามเปลี่ยนไอคอนประเภทไฟล์ให้ดูที่ปุ่ม ShellEx และดูว่ามีปุ่ม DefaultIcon หรือไม่ ประเภทไฟล์เหล่านี้ได้รับการคุ้มครองโดย Windows หากคุณแก้ไขหรือลบรายการ Windows 'จะรีเซ็ตทุกครั้งที่รีบูต (ถ้าคุณไม่ได้เป็นเจ้าของคีย์ทั้งหมดให้ปฏิเสธการเข้าถึง TI และระบบเพื่อเปลี่ยนเจ้าของหรือเปลี่ยนสิทธิ์

ขอให้โชคดี


-1 "ฉันจะลองบอกว่านี่เป็นวิธีที่ง่าย" - ฉันคิดว่ามันเป็นเรื่องง่ายสำหรับคุณที่จะพูด (เขียน) สิ่งนี้ในลักษณะที่สับสนวุ่นวายด้วยเครื่องหมายวรรคตอนที่น่าสงสัยและไม่มีการจัดรูปแบบและรวดเร็ว มันไม่ง่ายเลยที่เราจะอ่านและทำความเข้าใจ: อะไรคืออะไรkey nameหรือpathคำใดที่ไม่เป็นทางการและเป็นชื่อที่มีความหมายอะไรคืออะไรเกิดอะไรขึ้น ฯลฯ
Kamil Maciorowski

ฉันขอโทษฉันคิดว่าฉันกำลังพูดกับคนอื่น ๆ ใน "บริบท" กับสิ่งที่พูดไปแล้ว เมื่อพิจารณาจากบทสนทนาข้างต้นฉันเพียงแค่เพิ่มคำตอบที่ง่ายที่สุดเพื่อตอบคำถามเดิม ที่กล่าวว่าปรากฏว่าฉัน "พวกเขา" คุ้นเคยกับรีจิสทรีและจะพอใจกับสิ่งที่ฉันอธิบาย ยกโทษให้ฉันถ้าฉันผิด
EdgeClub

ไม่มีบทสนทนา เป็นเว็บไซต์ถาม - ตอบไม่ใช่ฟอรัม มีคำถามที่เป็นและมีคำตอบของคุณซึ่งควรจะแบบสแตนด์อโลน คุณสามารถพูดถึงคำตอบหรือความคิดเห็นอื่น ๆ ได้ แต่โปรดทำให้ชัดเจน (เช่น "คำตอบของ Joe [ลิงค์] ล้าสมัยทุกวันนี้ดีกว่า ... ") ในความคิดของฉันปัญหาหลักกับคำตอบของคุณคือการขาดการจัดรูปแบบที่เหมาะสม `backticks`ก็จะได้รับประโยชน์จาก คำตอบอื่น ๆนี้มันค่อนข้างถูกต้อง เมื่อ (ถ้า) คุณแก้ไขคำตอบของคุณโปรดแสดงความคิดเห็น (เริ่มต้นด้วย @KamilMaciorowski) และฉันจะถอนการโหวตของฉัน
Kamil Maciorowski
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.