Evet, doğrudan kayıt defteri manipülasyonuyla yazabilirsiniz.
Kısa cevap
İçine aşağıdakilerden her biri kopyalama .reg
dosyaları (örneğin firefox.reg
, chrome.reg
, ie.reg
) ile anahtar (veya komut dosyası ile istediğinizde onları çalıştırmak reg.exe
).
Firefox için:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
Chrome için:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"
IE9 için:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"
Uzun Cevap
Windows, kullanıcı başına standart protokolü Standart UrlAssociations
Anahtar olarak bulunan Kayıtlar tuşunda saklar .
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
Dosya ilişkilerine benzer şekilde, bağlantılar için "Varsayılan Program" olabilir. Bu, UserChoice
anahtara referans veren bir tür jargon terminolojisidir - http
ProgId altında ayrıca değiştirilebilen standart bir dosya derneği benzeri kabuk kaydı da vardır , ancak tarayıcılar için proksimal yapılandırma Varsayılan Programlar aracılığıyla yapılır (bu konuda ek yorum için aşağıya bakın). ).
Burada bahsettiğim şey, tarayıcı ayarlamak için Kontrol Panelinin Varsayılan Programlar bölümüne gittiğinizde neyi değiştirdiğinizdir:
Bunu doğrudan kayıt defterinde yapılandırmak için önce orada olduğunu kontrol edelim. Bu ekran görüntüsünde bu tuşa girdim regedit.exe
ve Chrome ChromeHTML
ProgId değeri tarafından belirlenen varsayılan tarayıcım .
Bir bağlantıyı tıklattığınızda hangi tarayıcının açılacağını değiştirmek için yapmanız gereken minimum değişiklik, değiştirmek istediğiniz her protokolde alt anahtarın ProgId
altındaki değeri UserChoice
değiştirmektir (büyük olasılıkla http
ve https
aynı olacaktır, ancak bazı nedenlerden dolayı her birini yapmak istiyorsanız ayrı tarayıcılarda açık olanlardan,
Şimdi sadece Firefox, IE ve geçmek isteyebileceğiniz diğer tarayıcılar için ne kullanılacağının belirlenmesi meselesi. Bunu programlı olarak belirlemek istiyorsanız Capabilities
, Firefox için burada bulunan tarayıcı kaydının anahtarını kazarak yapabilirsiniz :
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet
Tüm tarayıcıların listelendiği yerdir ve her birinin yukarıdaki yapıya sahip olması gerekir.
Firefox’a geçmek FirefoxURL
istersem, ProgId değerini UrlAcations’larda yedek kullanacağımı denetlemeden görebilirsiniz.
(Bununla birlikte, böyle kazmak istemiyorsanız, hızlı bir hile yapın: Varsayılan olarak istediğiniz tarayıcıyı ayarlayın ve tarayıcının ayarladığı şeyi görmek için regedit'i yenileyin UserChoice
!)
Tek yapmamız gereken, bu anahtar değerini değiştirmek FirefoxURL
ve şimdi Firefox'ta açık bağlantılar. Bunu yaptıktan sonra, bir bağlantıyı tıklatabilir veya kontrol panelinde doğru varsayılanın kaydedildiğini kontrol edebilirsiniz.
Şimdi, çok dikkat ediyorsanız, tüm bunlarda birkaç kusur olduğunu fark etmiş olabilirsiniz:
IE'nin URLAssociations
tarayıcı kaydı altında bir alt anahtarı StartMenuInternet
yok, bu yüzden ProgId değeri nereden geliyor? Cevap: Bilmiyorum, en azından araştırma olmadan. Henüz bulamadığım kodlanmış veya başka bir anahtarda bulunabilir.
Firefox'un ProgId o en altında URLAssociations
olan FirefoxURL
, ancak tarayıcıda kendisinde seçeneklerinde kayıt tıkladığınızda kullandığı FirefoxHTML
yerine PROGID olarak! Niye ya? Yine bilmiyorum. İkisi de çalışıyor, çünkü ikisi de var ve Firefox'a işaret ediyor. Belki kasıtlıdır, ama muhtemelen etkisi olmayan bir hatadır.
UserChoice
Varsayılan Program olmadığında ne olur ? Cevap: protokol için "normal" dosya birliği (örneğin, http
) kullanılır. Bu sadece dosya dernekler (gibi standart ProgId yerlerde bulunur HKCU\Software\Classes
, HKLM\Software\Classes
ve manzaraya HKCR
). En azından Chrome oradaki bilgileri belirler sanırım, ama Firefox en azından testlerimde görünmüyor.
Bunun Varsayılan Programlar Düzenleyici'ye eklenmesini istiyorsanız, bu uygulamanın UserVoice Feedback sayfasında onu önerip yükseltmeniz gerektiğini öneririm . Uygulama yazarının, geliştirme zamanını nasıl harcayacağına karar verirken bu geri bildirime dikkat ettiğini iyi bir şekilde anladım!