Varsayılan tarayıcımı Windows 7'de listelenmemiş bir programla nasıl değiştiririm?


25

Düzenli olarak birden fazla tarayıcı kullanıyorum, bu yüzden sayfaları zaten çalışmakta olan tarayıcıda (ya da yoksa Firefox'ta) açacak bir komut dosyası yazdım. Bu betiği varsayılan tarayıcım olarak ayarlamak istiyorum. "İlişkileri Ayarla" iletişim kutusuna gittiğimde, HTTP'yi seçip "Programı Değiştir" i tıkladığımda, açılan iletişim kutusu önceden yüklediğim web tarayıcılarından biri dışında bir şey seçmeme izin vermiyor. Bu, tüm protokoller için geçerli gibi görünmektedir ("Diğer Programlar" dan seçmenize veya listelenmemiş bir programa göz atmanıza izin veren dosya uzantılarının aksine). Windows yardımı bu konuda hiçbir şey söylemiyor ve sadece mevcut olmayan "Göz at ..." düğmesini kullandığını söylüyor. 3. parti “Default Programs Editor” ı bile denedim, ancak bunu yapabilecek gibi görünmüyor.

Komut dosyamı varsayılan olarak el ile (örneğin kayıt defterini düzenleyerek) ayarlayabilmemin bir yolu var mı?

Yanıtlar:


36

Evet, doğrudan kayıt defteri manipülasyonuyla yazabilirsiniz.

Kısa cevap

İçine aşağıdakilerden her biri kopyalama .regdosyaları (ö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 UrlAssociationsAnahtar 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, UserChoiceanahtara referans veren bir tür jargon terminolojisidir - httpProgId 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:

Denetim Masası'ndaki Protokoller için Varsayılan Programlar

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.exeve Chrome ChromeHTMLProgId değeri tarafından belirlenen varsayılan tarayıcım .

Regedit içindeki UrlAssociations alt anahtarına gitme

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 ProgIdaltındaki değeri UserChoicedeğiştirmektir (büyük olasılıkla httpve httpsaynı 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.

Regedit'teki Yetenekler anahtarına gitme

Firefox’a geçmek FirefoxURListersem, 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 FirefoxURLve ş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.

Denetim Masası'ndaki varsayılan programı iki kez kontrol etme

Şimdi, çok dikkat ediyorsanız, tüm bunlarda birkaç kusur olduğunu fark etmiş olabilirsiniz:

  1. IE'nin URLAssociationstarayıcı kaydı altında bir alt anahtarı StartMenuInternetyok, 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.

  2. Firefox'un ProgId o en altında URLAssociationsolan FirefoxURL, ancak tarayıcıda kendisinde seçeneklerinde kayıt tıkladığınızda kullandığı FirefoxHTMLyerine 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.

  3. UserChoiceVarsayı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\Classesve manzaraya HKCR). En azından Chrome oradaki bilgileri belirler sanırım, ama Firefox en azından testlerimde görünmüyor.

  4. 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!


2
Detaylı cevap için teşekkürler. Yüklü tarayıcılardan başka bir şeyi varsayılan HTTP işleyicisi olarak ayarlamak istesem ne yapardım? Kayıt defterine daha önce yüklenmemiş bir şeyi kullanması bile mümkün mü? Yoksa betiğim için bir kayıt defteri girişi oluşturmam gerekecek mi?
Morgan 18

2
@MorganMay Yapmanız gereken, 3. Programda UserChoicebelirtildiği gibi, "standart" dosya ilişkilendirme anahtarlarının kullanılması için Varsayılan Programlar kaydını kaldırmaktır . Örneğin, varsayılan değerine bakın HKEY_CLASSES_ROOT\http\shell\open\command(Eğer önemliyse, aynı anahtarı HKEY_CURRENT_USERstandart bir kullanıcı olarak da yazabilirsiniz ). Yalnızca uygulama yolunu ve tarayıcınızın ihtiyaç duyduğu parametre dizesini ayarlama meselesi olmalı (örneğin, -- %1Chrome için düşünüyorum)
Factor Mystic

1
Sonuna kadar okuduğuma sevindim. ProgId girişlerini kaldırma ve ardından HKCR \ http \ shell \ open \ komutunda "varsayılan" işleyiciyi ayarlama
Brent

-1

Windows 10'da varsayılan bir protokol işleyici olarak özel bir şey belirlemek için bakarken bu cevaba cevap veren başka biri varsa, sanırım kırdım.

Bu sorunun diğer cevabı Clients\StartMenuInternet, Windows 7'deki varsayılan tarayıcıyı ayarlama konusunda bilmediğim anahtarla bir adım daha yaklaştı . Ancak, Firefox’un StartMenuInternetanahtarını çoğalttıktan sonra programım hala Ayarlar’da görünmüyordu. Uygulamanın.

Revo tarama için artık kayıt defteri anahtarlarını izin ardından Firefox'un kaldırıcı iptal firefox bir kaldırma başlamak için Revo Uninstaller kullandıktan sonra, başka bir anahtar bulundu: HKLM\SOFTWARE\RegisteredApplications. Bu, pencerelerin işlevleri hakkında söylenebilecek kayıtlı tüm programları depoladığı görülüyor.

Bu yüzden, StartMenuInternetanahtarı ayarladıktan sonra , - evet, aynen bunun gibi bir şeye HKLM\SOFTWARE\RegisteredApplicationsişaret etmek için bir anahtar ekleyin :Software\Clients\StartMenuInternet\YOURPROGRAM\CapabilitiesSoftware\

Regedit'in ekran görüntüsü ( 10 temsilcim olana kadar görüntüyü gömemiyorum ...)


-1

Programınızın (YName.exe) bir tarayıcı olarak kabul edilmesi için kayıtlı olması gerekir:

1) ... StartMenuInternet - yukarıda açıklandığı gibi,

HKCU \ Software \ Clients \ StartMenuInternet \ YName \ olanaklarının artırılması \ URLAssociations

http = YNameURL

https = YNameURL

2) HKCU \ Yazılım \ Kayıtlı Uygulamalar - Yukarıda açıklandığı gibi:

YName = Software \ Clients \ StartMenuInternet \ YName \ Yetenekleri

3) HKCU \ Yazılım \ Sınıflar \ YNameURL \ shell \ open \ command

@ = Yol \ YName.exe

4) HKCU \ Yazılım \ Sınıflar \ Uygulamalar \ YName.exe \ shell \ open \ command

@ = Yol \ YName.exe



1
Süper Kullanıcıya Hoşgeldiniz ! Lütfen cevapların İngilizce olması gerektiğini unutmayın (tamamen).
Glorfindel

(1)  Süper Kullanıcı , yalnızca İngilizce bir sitedir. Lütfen cevabınızın İngilizce olmayan bölümlerini silin. (2) Her cevap kendi başına ayakta durmalı (mantıklı) olmalıdır. Bu değil. Cevaplar, diğer cevaplara atıfta bulunarak “yukarıda açıklandığı gibi” dememelidir. Lütfen bunu düzenleyin, böylece kendi kendine mantıklı olur. Kredi verdiğiniz sürece diğer cevapların bazı kısımlarını kopyalamanız uygundur. (3) Bu söylediklerini çoğu zaten söylenmiş görünüyor. Lütfen hangi yeni bilgileri eklediğinizi açıkça belirtin.
Scott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.