ฉันจะเปลี่ยนเบราว์เซอร์เริ่มต้นเป็นโปรแกรมที่ไม่แสดงใน Windows 7 ได้อย่างไร


25

ฉันใช้เบราว์เซอร์หลายตัวเป็นประจำดังนั้นฉันจึงเขียนสคริปต์ที่จะเปิดหน้าในเบราว์เซอร์ใดก็ตามที่ทำงานอยู่แล้ว (หรือ Firefox หากไม่มี) ฉันต้องการตั้งค่าสคริปต์นี้เป็นเบราว์เซอร์เริ่มต้นของฉัน เมื่อฉันไปที่กล่องโต้ตอบ "ตั้งค่าสมาคม" เลือก HTTP และคลิก "เปลี่ยนโปรแกรม" กล่องโต้ตอบที่ปรากฏขึ้นไม่อนุญาตให้ฉันเลือกอะไรเลยยกเว้นหนึ่งในเว็บเบราว์เซอร์ที่ฉันติดตั้งไว้แล้ว นี่เป็นกรณีของโปรโตคอลทั้งหมด (ตรงข้ามกับนามสกุลไฟล์ซึ่งอนุญาตให้คุณเลือกจาก "โปรแกรมอื่น ๆ " หรือเรียกดูโปรแกรมที่ไม่อยู่ในรายการ) ความช่วยเหลือของ Windows ไม่ได้บอกอะไรเกี่ยวกับสิ่งนี้และเพียงบอกว่าจะใช้ปุ่ม "เรียกดู ... " ซึ่งไม่สามารถใช้ได้ ฉันได้ลอง "ตัวแก้ไขโปรแกรมเริ่มต้น" ของบุคคลที่สาม แต่ดูเหมือนจะไม่สามารถทำได้

มีวิธีที่ฉันสามารถตั้งค่าสคริปต์ของฉันเป็นค่าเริ่มต้นด้วยตนเอง (อาจแก้ไขรีจิสทรี)?

คำตอบ:


36

ใช่คุณสามารถสคริปต์มันด้วยการจัดการรีจิสทรีโดยตรง

คำตอบสั้น ๆ

คัดลอกแต่ละต่อไปนี้ลง.regไฟล์ (เช่นfirefox.reg, chrome.reg, ie.reg) และเรียกพวกเขาเมื่อคุณต้องการสวิทช์ (หรือสคริปต์ด้วยreg.exe)

สำหรับ Firefox:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"

สำหรับ Chrome:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"

สำหรับ IE9:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"

คำตอบยาว ๆ

Windows จัดเก็บโปรโตคอลมาตรฐานต่อผู้ใช้การลงทะเบียนเริ่มต้นภายใต้UrlAssociationsคีย์อยู่ที่

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations

เช่นเดียวกับการเชื่อมโยงไฟล์อาจมี "โปรแกรมเริ่มต้น" สำหรับลิงก์ นี่คือการจัดเรียงของคำศัพท์ศัพท์แสงที่อ้างอิงUserChoiceคีย์นอกจากนี้ยังมีความสัมพันธ์ของแฟ้มเช่นการลงทะเบียนมาตรฐานเปลือกภายใต้httpProgId ซึ่งสามารถนอกจากนี้ยังจะมีการเปลี่ยนแปลง แต่การกำหนดค่าที่ใกล้เคียงสำหรับเบราว์เซอร์ผ่านทางโปรแกรมเริ่มต้น (ดูด้านล่างสำหรับการแสดงความคิดเห็นเพิ่มเติมเกี่ยวกับเรื่องนี้ )

สิ่งที่ฉันกำลังพูดถึงนี่คือสิ่งที่คุณกำลังเปลี่ยนแปลงเมื่อคุณไปที่ส่วนโปรแกรมเริ่มต้นของแผงควบคุมเพื่อตั้งค่าเบราว์เซอร์:

โปรแกรมเริ่มต้นสำหรับโปรโตคอลในแผงควบคุม

หากต้องการกำหนดค่านี้โดยตรงในรีจิสทรีก่อนอื่นให้ตรวจสอบว่ามีอยู่แล้ว ในภาพหน้าจอนี้ฉันได้ไปที่คีย์regedit.exeนั้นและ Chrome เป็นเบราว์เซอร์เริ่มต้นของฉันซึ่งกำหนดโดยChromeHTMLค่า ProgId

การนำทางไปยังคีย์ย่อยของ UrlAssociations ใน regedit

การเปลี่ยนแปลงขั้นต่ำที่คุณต้องทำเพื่อสลับเบราว์เซอร์ที่เปิดเมื่อคุณคลิกลิงก์คือการเปลี่ยนProgIdค่าภายใต้UserChoiceคีย์ย่อยของแต่ละโปรโตคอลที่คุณต้องการเปลี่ยน (อาจจะเป็นhttpและhttpsจะเหมือนเดิม แต่ถ้าด้วยเหตุผลบางอย่างที่คุณต้องการทำ จากที่เปิดในเบราว์เซอร์แยกต่างหากคุณทำได้)

ตอนนี้เป็นเพียงเรื่องของการพิจารณาว่าจะใช้สำหรับ Firefox, IE และเบราว์เซอร์อื่นใดที่คุณอาจต้องการเปลี่ยนเป็น หากคุณต้องการตรวจสอบโปรแกรมนี้คุณสามารถทำได้โดยขุดลงไปในCapabilitiesคีย์ของการลงทะเบียนเบราว์เซอร์ที่นี่สำหรับ Firefox:

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet เป็นที่ที่เบราว์เซอร์ทั้งหมดมีการระบุไว้และแต่ละอันควรมีโครงสร้างด้านบน

การนำทางไปยังคีย์ความสามารถในการลงทะเบียนใหม่

คุณสามารถเห็นได้จากการตรวจสอบว่าถ้าฉันต้องการเปลี่ยนเป็น Firefox ฉันจะใช้FirefoxURLค่า ProgId สำรองใน UrlAssociations

(อย่างไรก็ตามหากคุณไม่ต้องการที่จะขุดมันแบบนี้ก็มีสูตรโกงอย่างรวดเร็ว: เพียงแค่ตั้งค่าเบราว์เซอร์ที่คุณต้องการเป็นค่าเริ่มต้นและรีเฟรช regedit เพื่อดูว่าเบราว์เซอร์ได้ตั้งค่าสำหรับUserChoice!)

สิ่งที่เราต้องทำคือเปลี่ยนค่าคีย์เป็นFirefoxURLและตอนนี้ลิงก์เปิดใน Firefox หลังจากทำเช่นนั้นคุณสามารถคลิกที่ลิงค์หรือตรวจสอบอีกครั้งในแผงควบคุมที่ลงทะเบียนเริ่มต้นที่ถูกต้อง:

ตรวจสอบโปรแกรมเริ่มต้นอีกครั้งในแผงควบคุม

ตอนนี้หากคุณให้ความสนใจอย่างใกล้ชิดคุณอาจสังเกตเห็นข้อบกพร่องสองสามข้อที่มีทั้งหมดนี้:

  1. IE ไม่มีURLAssociationsคีย์ย่อยภายใต้การลงทะเบียนเบราว์เซอร์StartMenuInternetดังนั้น ProgId จึงมาจากไหน คำตอบ: ฉันไม่รู้อย่างน้อยก็ไม่มีการวิจัยเพิ่มเติม อาจเป็นรหัสหรือพบในคีย์อื่นที่ฉันยังไม่พบ

  2. ของ Firefox ProgId ภายใต้มันURLAssociationsมีFirefoxURLแต่เมื่อคุณคลิกเพื่อลงทะเบียนในตัวเลือกในเบราว์เซอร์ของตัวเองจะใช้FirefoxHTMLเป็น ProgId แทน! ทำไม? อีกครั้งฉันไม่รู้ พวกเขาทั้งสองทำงานเพราะทั้งคู่มีอยู่และชี้ไปที่ Firefox อาจจะตั้งใจ แต่ก็อาจเป็นเพียงข้อผิดพลาดที่ไม่มีผลกระทบ

  3. จะเกิดอะไรขึ้นเมื่อไม่มีUserChoiceโปรแกรมเริ่มต้น คำตอบ: มีการใช้การเชื่อมโยงไฟล์ "ปกติ" สำหรับโปรโตคอล (เช่นhttp) นี้จะพบในสถานที่ ProgId มาตรฐานเช่นเดียวกับความสัมพันธ์ของแฟ้ม ( HKCU\Software\Classes, HKLM\Software\Classesและมุมมองที่HKCR) อย่างน้อย Chrome ก็วางข้อมูลไว้ที่นั่น แต่ Firefox ก็ไม่ได้ดูเหมือนว่าอย่างน้อยในการทดสอบของฉัน

  4. ฉันขอแนะนำว่าถ้าคุณต้องการให้สิ่งนี้ถูกเพิ่มเข้าไปใน Default Programs Editor คุณควรแนะนำและ upvote บนหน้าคำติชม UserVoiceของแอปพลิเคชันนั้น ฉันมีสิทธิ์ที่ดีที่ผู้สร้างแอปพลิเคชันให้ความสำคัญกับความคิดเห็นนั้นเมื่อตัดสินใจว่าจะใช้เวลาในการพัฒนาอย่างไร


2
ขอบคุณสำหรับการตอบสนองอย่างละเอียด ฉันจะทำอย่างไรถ้าฉันต้องการตั้งค่าอื่นที่ไม่ใช่เบราว์เซอร์ที่ติดตั้งเป็นตัวจัดการ HTTP เริ่มต้น เป็นไปได้ไหมที่จะตั้งให้ใช้สิ่งที่ยังไม่ได้ติดตั้งในรีจิสตรี หรือฉันจะต้องสร้างรายการรีจิสตรีสำหรับสคริปต์ของฉัน?
มอร์แกนอาจ

2
@MorganMay สิ่งที่คุณต้องทำคือลบการUserChoiceลงทะเบียนโปรแกรมเริ่มต้นเพื่อให้ใช้คีย์การเชื่อมโยงไฟล์ "มาตรฐาน" ตามที่อ้างอิงในจุดที่ 3 ตัวอย่างเช่นดูที่ค่าเริ่มต้นของHKEY_CLASSES_ROOT\http\shell\open\command(คุณสามารถเขียนคีย์เดียวกันนั้นในHKEY_CURRENT_USERฐานะผู้ใช้มาตรฐานหากเป็นเรื่องสำคัญ) ควรเป็นเรื่องของการตั้งค่าเส้นทางแอปพลิเคชันและพารามิเตอร์ใด ๆ ที่เบราว์เซอร์ของคุณต้องการ (เช่น-- %1ฉันคิดว่าใช้ Chrome)
Factor Mystic

1
ดีใจที่ได้อ่านจนจบ การรวมกันของการลบรายการ ProgId และจากนั้นตั้งค่าตัวจัดการ "เริ่มต้น" ใน HKCR \ http \ shell \ open \ command
เบรนต์

-1

หากมีคนอื่นที่ตอบคำถามนี้ในขณะที่ต้องการกำหนดสิ่งที่กำหนดเองเป็นตัวจัดการโพรโทคอลเริ่มต้นใน Windows 10 ฉันคิดว่าฉันทำผิดพลาด

อีกคำตอบสำหรับคำถามนี้ทำให้ฉันเข้าใกล้Clients\StartMenuInternetคีย์มากขึ้นซึ่งฉันไม่รู้เกี่ยวกับการตั้งค่าเบราว์เซอร์เริ่มต้นใน Windows 7 อย่างไรก็ตามหลังจากStartMenuInternetคีย์Firefox ซ้ำกันสวยมากโปรแกรมของฉันยังคงไม่ปรากฏในการตั้งค่า แอป

หลังจากที่ใช้ Revo Uninstaller ที่จะเริ่มต้นถอนการติดตั้ง Firefox ยกเลิกถอนการติดตั้ง Firefox จากนั้นก็ปล่อยให้ Revo HKLM\SOFTWARE\RegisteredApplicationsสแกนรีจิสทรีคีย์ที่เหลือผมพบที่สำคัญอื่น: ดูเหมือนว่าจะเก็บโปรแกรมทั้งหมดที่ลงทะเบียนไว้ซึ่ง windows สามารถบอกได้เกี่ยวกับหน้าที่การใช้งาน

ดังนั้นหลังจากตั้งค่าStartMenuInternetคีย์แล้วให้เพิ่มรหัสHKLM\SOFTWARE\RegisteredApplicationsเพื่อชี้ไปที่Software\Clients\StartMenuInternet\YOURPROGRAM\Capabilities- ใช่แบบนั้นเริ่มต้นด้วยSoftware\:

ภาพหน้าจอของ regedit (ฉันไม่สามารถฝังภาพได้จนกว่าฉันจะมี 10 ตัวแทน ... )


-1

เพื่อให้โปรแกรมของคุณ (YName.exe) ได้รับการพิจารณาว่าเป็นเบราว์เซอร์จะต้องลงทะเบียน:

1) ... StartMenuInternet - ตามที่อธิบายไว้ข้างต้น

HKCU \ Software \ Clients \ StartMenuInternet \ YName \ ความสามารถ \ URLAssociations

http = YNameURL

https = YNameURL

2) แอปพลิเคชัน HKCU \ Software \ Registered - ตามที่อธิบายไว้ข้างต้น:

YName = Software \ ลูกค้า \ StartMenuInternet \ YName \ ความสามารถ

3) HKCU \ Software \ Classes \ YNameURL \ shell \ open \ คำสั่ง

@ = เส้นทาง \ YName.exe

4) HKCU \ Software \ Classes \ Applications \ YName.exe \ shell \ open \ คำสั่ง

@ = เส้นทาง \ YName.exe



1
ยินดีต้อนรับสู่Super User ! โปรดทราบว่าคำตอบจะต้องเป็นภาษาอังกฤษ (ทั้งหมด)
Glorfindel

(1)  Super Userเป็นเว็บไซต์ภาษาอังกฤษเท่านั้น โปรดลบส่วนของคำตอบที่ไม่ใช่ภาษาอังกฤษ (2) ทุกคำตอบควรจะยืนได้ด้วยตัวเอง อันนี้ไม่ได้ คำตอบไม่ควรพูดว่า "ตามที่อธิบายไว้ข้างต้น" โดยอ้างอิงจากคำตอบอื่น ๆ โปรดแก้ไขสิ่งนี้เพื่อให้เหมาะสม คุณสามารถคัดลอกส่วนของคำตอบอื่น ๆ ได้ตราบใดที่คุณให้เครดิต (3) สิ่งที่กล่าวมาส่วนใหญ่ดูเหมือนจะถูกพูดไปแล้ว โปรดระบุข้อมูลใหม่ที่คุณเพิ่ม
สกอตต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.