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 .reg
file (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 UrlAssociations
khó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 UserChoice
khóa - cũng có đăng ký vỏ giống như tệp liên kết tệp theo http
ProgId 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ấ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.exe
và Chrome là trình duyệt mặc định của tôi, được chỉ định bởi ChromeHTML
giá trị ProgId.
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 ProgId
giá trị theo UserChoice
khoá con trên mỗi giao thức bạn muốn thay đổi (có thể http
và https
sẽ 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 Capabilities
khó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.
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 FirefoxURL
giá 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ý:
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:
IE không có URLAssociations
khó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.
ProgID của Firefox là dưới nó URLAssociations
là FirefoxURL
, 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 FirefoxHTML
như 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.
Điều gì xảy ra khi không có UserChoice
Chươ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.
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!