Làm cách nào để thay đổi trình duyệt mặc định của tôi thành chương trình chưa niêm yết trong Windows 7?


25

Tôi sử dụng nhiều trình duyệt thường xuyên, vì vậy tôi đã viết một tập lệnh sẽ mở các trang trong bất kỳ trình duyệt nào đang chạy (hoặc Firefox nếu không có trình duyệt). Tôi muốn đặt tập lệnh này làm trình duyệt mặc định của mình. Khi tôi đi đến hộp thoại "Đặt liên kết", chọn HTTP và nhấp vào "Thay đổi chương trình", hộp thoại bật lên không cho phép tôi chọn bất cứ thứ gì ngoại trừ một trong các trình duyệt web mà tôi đã cài đặt. Điều này dường như là trường hợp của tất cả các giao thức (trái ngược với phần mở rộng tệp, cho phép bạn chọn từ "Chương trình khác" hoặc duyệt tìm chương trình không được liệt kê). Trợ giúp Windows không nói gì về điều này và chỉ nói sử dụng nút "Duyệt ...", không khả dụng. Tôi thậm chí đã thử "Trình chỉnh sửa chương trình mặc định" của bên thứ 3, nhưng dường như không thể làm được điều này.

Có cách nào để tôi có thể đặt tập lệnh của mình làm mặc định theo cách thủ công (có thể bằng cách chỉnh sửa sổ đăng ký) không?

Câu trả lời:


36

Có, bạn có thể kịch bản nó với thao tác đăng ký trực tiếp.

Câu trả lời ngắn

Sao chép từng lệnh sau vào .regfile (ví dụ như firefox.reg, chrome.reg, ie.reg) và chạy chúng khi bạn muốn chuyển đổi (hoặc, kịch bản với reg.exe).

Đối với Firefox:

Windows Registry Editor Version 5.00

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

Đối với Chrome:

Windows Registry Editor Version 5.00

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

Đối với IE9:

Windows Registry Editor Version 5.00

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

Câu trả lời dài

Windows lưu trữ giao thức chuẩn cho mỗi người dùng Đăng ký mặc định theo UrlAssociationskhóa, được tìm thấy tại

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

Tương tự như liên kết tệp, có thể có "Chương trình mặc định" cho các liên kết. Đây là một loại thuật ngữ thuật ngữ tham chiếu UserChoicekhóa - cũng có đăng ký vỏ giống như tệp liên kết tệp theo httpProgId cũng có thể được thay đổi, nhưng cấu hình gần nhất cho trình duyệt là thông qua Chương trình mặc định (xem phần dưới để nhận xét thêm về điều này ).

Điều tôi đang nói ở đây là những gì bạn đang thay đổi khi bạn đi đến phần Chương trình mặc định của Bảng điều khiển để đặt trình duyệt:

Các chương trình mặc định cho các giao thức trong Bảng điều khiển

Để cấu hình điều này trực tiếp trong sổ đăng ký, trước tiên hãy kiểm tra xem đã có ở đó chưa. Trong ảnh chụp màn hình này, tôi đã điều hướng đến khóa đó regedit.exevà Chrome là trình duyệt mặc định của tôi, được chỉ định bởi ChromeHTMLgiá trị ProgId.

Điều hướng đến khoá con UrlAssociations trong regedit

Thay đổi tối thiểu bạn cần thực hiện để chuyển đổi trình duyệt nào sẽ mở khi bạn nhấp vào liên kết là thay đổi ProgIdgiá trị theo UserChoicekhoá con trên mỗi giao thức bạn muốn thay đổi (có thể httphttpssẽ giống nhau, nhưng nếu vì lý do nào đó bạn muốn thực hiện trong số những người mở trong các trình duyệt riêng biệt, bạn có thể).

Bây giờ chỉ là vấn đề xác định sử dụng cái gì cho Firefox, IE và bất kỳ trình duyệt nào khác mà bạn có thể muốn chuyển sang. Nếu bạn muốn xác định điều này bằng lập trình, bạn có thể làm như vậy bằng cách đào sâu vào Capabilitieskhóa đăng ký trình duyệt, được tìm thấy ở đây cho Firefox:

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

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet là nơi tất cả các trình duyệt được liệt kê và mỗi trình duyệt nên có cấu trúc trên.

Điều hướng đến phím Khả năng trong regedit

Bạn có thể thấy từ kiểm tra rằng nếu tôi muốn chuyển sang Firefox, tôi sẽ sử dụng FirefoxURLgiá trị ProgId sao lưu trong UrlAssociations.

(Tuy nhiên, nếu bạn không muốn tìm hiểu kỹ về vấn đề này, thì có một mánh gian lận nhanh: Chỉ cần đặt bất kỳ trình duyệt nào bạn muốn làm mặc định và làm mới regedit để xem trình duyệt đã đặt gì cho UserChoice!)

Tất cả những gì chúng ta cần làm là thay đổi giá trị khóa đó thành FirefoxURL, và bây giờ các liên kết mở trong Firefox. Sau khi làm như vậy, bạn có thể nhấp vào một liên kết hoặc kiểm tra hai lần trong bảng điều khiển rằng mặc định bên phải đã được đăng ký:

Kiểm tra kỹ chương trình mặc định trong Bảng điều khiển

Bây giờ nếu bạn đã chú ý, bạn có thể nhận thấy một vài sai sót với tất cả những điều này:

  1. IE không có URLAssociationskhóa con theo đăng ký trình duyệt của nó StartMenuInternet, vậy giá trị ProgId đến từ đâu? Trả lời: Tôi không biết, ít nhất là không phải không có nhiều nghiên cứu. Nó có thể được mã hóa cứng hoặc được tìm thấy trong một khóa khác mà tôi chưa tìm thấy.

  2. ProgID của Firefox là dưới nó URLAssociationsFirefoxURL, nhưng khi bạn nhấn vào đây để đăng ký trong các tùy chọn trong trình duyệt chính nó, nó sử dụng FirefoxHTMLnhư ProgID thay! Tại sao? Một lần nữa, tôi không biết. Cả hai đều hoạt động vì cả hai đều tồn tại và trỏ đến Firefox. Có thể đó là cố ý, nhưng có lẽ đó chỉ là một lỗi không có tác dụng.

  3. Điều gì xảy ra khi không có UserChoiceChương trình mặc định? Trả lời: liên kết tệp "thông thường" cho giao thức (ví dụ http:) được sử dụng. Này được tìm thấy tại các địa điểm ProgID tiêu chuẩn giống như các hiệp hội tập tin ( HKCU\Software\Classes, HKLM\Software\Classes, và xem tại HKCR). Ít nhất Chrome đặt thông tin ở đó, tôi nghĩ vậy, nhưng Firefox dường như không, ít nhất là trong các thử nghiệm của tôi.

  4. Tôi khuyên rằng nếu bạn muốn điều này được thêm vào Trình chỉnh sửa chương trình mặc định, bạn nên đề xuất và nâng cấp nó trên trang Phản hồi UserVoice của ứng dụng đó . Tôi có thẩm quyền tốt khi tác giả ứng dụng chú ý đến phản hồi đó khi quyết định sử dụng thời gian phát triển của mình!


2
Cảm ơn đã phản ứng chi tiết. Tôi sẽ làm gì nếu tôi muốn đặt một cái gì đó không phải là một trong các trình duyệt được cài đặt làm trình xử lý HTTP mặc định? Thậm chí có thể thiết lập nó để sử dụng một cái gì đó chưa được cài đặt vào sổ đăng ký? Hoặc tôi sẽ cần phải tạo một mục đăng ký cho kịch bản của mình?
Morgan tháng 5

2
@MorganMay Những gì bạn cần làm là xóa UserChoiceđăng ký Chương trình mặc định, để các khóa kết hợp tệp "tiêu chuẩn" được sử dụng, như được tham chiếu trong điểm # 3. Ví dụ: xem giá trị mặc định của HKEY_CLASSES_ROOT\http\shell\open\command(Bạn có thể viết cùng khóa đó HKEY_CURRENT_USERvới tư cách là người dùng chuẩn, nếu điều đó quan trọng). Chỉ nên là vấn đề thiết lập đường dẫn ứng dụng và bất kỳ chuỗi tham số nào mà trình duyệt của bạn cần (ví dụ: -- %1tôi nghĩ cho Chrome)
Yếu tố huyền bí

1
Vui mừng tôi đọc đến cuối. Sự kết hợp xóa các mục nhập ProgId, sau đó đặt trình xử lý "mặc định" trong HKCR \ http \ shell \ open \ lệnh
Brent

-1

Nếu có ai khác đáp ứng câu trả lời này trong khi tìm cách đặt thứ gì đó tùy chỉnh làm trình xử lý giao thức mặc định trong Windows 10, tôi nghĩ rằng tôi đã bẻ khóa nó.

Câu trả lời khác cho câu hỏi này đã giúp tôi tiến gần hơn với Clients\StartMenuInternetkhóa, mà tôi không biết về việc cài đặt trình duyệt mặc định trong Windows 7. Tuy nhiên, sau khi sao chép khá nhiều StartMenuInternetkhóa của Firefox , chương trình của tôi vẫn không xuất hiện trong Cài đặt ứng dụng.

Sau khi sử dụng Revo Uninstaller để bắt đầu gỡ cài đặt firefox, hủy bỏ trình gỡ cài đặt của firefox sau đó cho Revo quét các khóa registry còn sót lại, tôi tìm thấy một khóa khác : HKLM\SOFTWARE\RegisteredApplications. Điều này dường như lưu trữ tất cả các chương trình đã đăng ký mà các cửa sổ có thể được nói về chức năng của chúng.

Vì vậy, sau khi thiết lập StartMenuInternetkhóa, hãy thêm một khóa HKLM\SOFTWARE\RegisteredApplicationsđể trỏ đến Software\Clients\StartMenuInternet\YOURPROGRAM\Capabilities- vâng, chính xác như thế, bắt đầu bằng Software\:

Ảnh chụp màn hình của regedit (Tôi không thể nhúng hình ảnh cho đến khi tôi có 10 đại diện ...)


-1

Để chương trình của bạn (YName.exe) được coi là một trình duyệt, nó cần phải được đăng ký:

1) ... StartMothyI Internet - như được mô tả ở trên,

HKCU \ Phần mềm \ Khách hàng \ StartMothyINET \ YName \ Capabilities \ URLAssociations

http = YNameURL

https = YNameURL

2) HKCU \ Software \ Đã đăng ký Ứng dụng - như được mô tả ở trên:

YName = Phần mềm \ Khách hàng \ StartMothyINET \ YName \ Khả năng

3) Lệnh HKCU \ Software \ Classes \ YNameURL \ shell \ open \

@ = Đường dẫn \ YName.exe

4) HKCU \ Software \ Classes \ Application \ YName.exe \ shell \ open \ lệnh

@ = Đường dẫn \ YName.exe



1
Chào mừng bạn đến với Siêu người dùng ! Xin lưu ý rằng câu trả lời phải bằng tiếng Anh (hoàn toàn).
Glorfindel

(1)  Super User là trang web chỉ có tiếng Anh. Vui lòng xóa các phần câu trả lời của bạn không bằng tiếng Anh. (2) Mỗi ​​câu trả lời sẽ có thể tự đứng (có ý nghĩa). Cái này thì không. Các câu trả lời không nên nói ra như mô tả ở trên về đề cập đến các câu trả lời khác. Vui lòng chỉnh sửa điều này để nó có ý nghĩa của chính nó. Bạn có thể sao chép các phần của câu trả lời khác miễn là bạn cung cấp tín dụng. (3) Hầu hết những gì điều này nói dường như đã được nói. Vui lòng làm rõ những thông tin mới mà bạn đang thêm.
Scott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.