Bagaimana cara mengubah browser default saya ke program yang tidak terdaftar di Windows 7?


25

Saya menggunakan beberapa browser secara teratur, jadi saya telah menulis sebuah skrip yang akan membuka halaman di browser apa pun yang sudah berjalan (atau Firefox jika tidak ada). Saya ingin mengatur skrip ini sebagai browser default saya. Ketika saya pergi ke dialog "Set Associations", pilih HTTP, dan klik "Change Program", dialog yang muncul tidak memungkinkan saya untuk memilih apa pun kecuali salah satu browser web yang sudah saya instal. Tampaknya ini merupakan kasus untuk semua protokol (sebagai lawan ekstensi file, yang memungkinkan Anda untuk memilih dari "Program Lainnya" atau menelusuri program yang tidak terdaftar). Bantuan Windows tidak mengatakan apa-apa tentang ini, dan hanya mengatakan untuk menggunakan tombol "Browse ...", yang tidak tersedia. Saya bahkan mencoba "Default Program Editor" pihak ke-3, tetapi sepertinya tidak bisa melakukan ini.

Apakah ada cara agar saya dapat mengatur skrip saya sebagai default secara manual (mungkin dengan mengedit registri)?

Jawaban:


36

Ya, Anda dapat menggunakannya dengan manipulasi registri langsung.

Jawaban Singkat

Salin masing-masing berikut ke dalam .regfile (seperti firefox.reg, chrome.reg, ie.reg) dan menjalankan mereka ketika Anda ingin beralih (atau, naskah dengan reg.exe).

Untuk Firefox:

Windows Registry Editor Version 5.00

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

Untuk Chrome:

Windows Registry Editor Version 5.00

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

Untuk IE9:

Windows Registry Editor Version 5.00

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

Jawaban Panjang

Windows menyimpan protokol standar per pengguna. Pendaftaran Default di bawah UrlAssociations tombol, ditemukan di

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

Mirip dengan asosiasi file, mungkin ada "Program Default" untuk tautan. Ini adalah semacam terminologi jargon yang merujuk padaUserChoice kunci-ada juga registrasi shell seperti asosiasi file standar di bawah httpProgId yang juga dapat diubah, tetapi konfigurasi proksimal untuk browser adalah melalui Program Default (lihat bagian bawah untuk komentar tambahan tentang ini ).

Apa yang saya bicarakan di sini adalah apa yang Anda ubah ketika Anda pergi ke bagian Program Default di Control Panel untuk mengatur browser:

Program Default untuk Protokol di Panel Kontrol

Untuk mengkonfigurasi ini langsung di registri, mari kita periksa yang sudah ada di sana. Di tangkapan layar ini saya telah menavigasi ke kunci itu regedit.exe, dan Chrome adalah browser default saya, yang ditunjuk olehChromeHTML ProgId.

Menavigasi ke subkunci UrlAssociations di regedit

Perubahan minimum yang perlu Anda lakukan untuk mengganti browser yang terbuka saat Anda mengklik tautan adalah mengubah ProgIdnilai di bawah UserChoicesubkunci pada setiap protokol yang ingin Anda ubah (mungkinhttp dan httpsakan sama, tetapi jika karena alasan tertentu Anda ingin membuat masing-masing dari yang terbuka di browser terpisah, Anda bisa).

Sekarang tinggal menentukan apa yang akan digunakan untuk Firefox, IE, dan peramban lain yang mungkin ingin Anda gunakan. Jika Anda ingin menentukan ini secara terprogram, Anda dapat melakukannya dengan menggali Capabilitieskunci pendaftaran browser, yang ditemukan di sini untuk Firefox:

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

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet adalah tempat semua browser terdaftar, dan masing-masing harus memiliki struktur di atas.

Menavigasi ke tombol Kemampuan di regedit

Anda dapat melihat dari pemeriksaan bahwa jika saya ingin beralih ke Firefox, saya akan menggunakan nilai FirefoxURLProgId cadangan di UrlAssociations.

(Namun, jika Anda tidak ingin menggali seperti ini, ada cheat cepat: Cukup tetapkan browser apa pun yang Anda inginkan sebagai default, dan segarkan regedit untuk melihat apa yang telah ditetapkan browser untuk UserChoice!)

Yang perlu kita lakukan hanyalah mengubah nilai kunci itu FirefoxURL, dan sekarang tautan terbuka di Firefox. Setelah melakukannya, Anda dapat mengklik tautan atau mengecek di panel kontrol bahwa standar yang benar terdaftar:

Periksa ulang program default di Control Panel

Sekarang jika Anda telah memperhatikan dengan seksama, Anda mungkin telah memperhatikan beberapa kekurangan dengan semua ini:

  1. IE tidak memiliki URLAssociationssubkunci di bawah pendaftaran browsernya StartMenuInternet, jadi dari mana nilai ProgId berasal? Jawab: Saya tidak tahu, setidaknya tidak tanpa riset lebih lanjut. Mungkin hardcoded atau ditemukan di kunci lain yang belum saya temukan.

  2. Firefox ProgId di bawah itu URLAssociationsadalah FirefoxURL, tapi ketika Anda mengklik untuk mendaftar dalam pilihan di browser itu sendiri, menggunakanFirefoxHTML sebagai ProgId sebagai gantinya! Mengapa? Sekali lagi, saya tidak tahu. Keduanya berfungsi karena keduanya ada dan mengarah ke Firefox. Mungkin disengaja, tapi itu mungkin hanya bug tanpa efek.

  3. Apa yang terjadi ketika tidak ada UserChoiceProgram Default? Jawaban: asosiasi file "biasa" untuk protokol (misalnya, http) digunakan. Ini ditemukan di lokasi ProgId standar seperti asosiasi file ( HKCU\Software\Classes, HKLM\Software\Classes, dan lihat di HKCR). Setidaknya Chrome menetapkan info di sana, saya kira, tetapi Firefox tampaknya tidak, setidaknya dalam pengujian saya.

  4. Saya merekomendasikan bahwa jika Anda ingin ini ditambahkan ke Editor Program Default, Anda harus menyarankan dan membatalkannya pada halaman UserVoice Feedback aplikasi itu . Saya memilikinya pada otoritas yang baik bahwa penulis aplikasi memperhatikan umpan balik itu ketika memutuskan bagaimana menghabiskan waktu pengembangannya!


2
Terima kasih atas respon yang mendetail. Apa yang akan saya lakukan jika saya ingin mengatur sesuatu selain dari salah satu browser yang diinstal sebagai penangan HTTP default? Apakah mungkin untuk mengaturnya agar menggunakan sesuatu yang belum diinstal ke registri? Atau apakah saya perlu membuat entri registri untuk skrip saya?
Morgan Mei

2
@MorganMay Yang harus Anda lakukan adalah menghapus UserChoiceregistrasi Program Default, sehingga kunci asosiasi file "standar" digunakan, sebagaimana dirujuk dalam poin # 3. Misalnya, lihat nilai default dari HKEY_CLASSES_ROOT\http\shell\open\command(Anda dapat menulis kunci yang sama HKEY_CURRENT_USERsebagai pengguna standar, jika itu penting). Seharusnya hanya masalah mengatur jalur aplikasi dan parameter apa pun string yang dibutuhkan browser Anda (misalnya, -- %1saya pikir untuk Chrome)
Factor Mystic

1
Senang saya membaca sampai akhir. Kombinasi menghapus entri ProgId, dan kemudian mengatur handler "default" di perintah HKCR \ http \ shell \ open \
Brent

-1

Jika ada orang lain yang mendapatkan jawaban ini sambil mencari untuk menetapkan sesuatu yang khusus sebagai pengendali protokol default di Windows 10, saya pikir saya telah memecahkannya.

Jawaban lain untuk pertanyaan ini membuat saya selangkah lebih dekat dengan Clients\StartMenuInternetkunci, yang saya tidak tahu tentang pengaturan browser default di Windows 7. Namun, setelah cukup banyak menduplikasi FirefoxStartMenuInternet kunci , program saya masih tidak muncul di Pengaturan. aplikasi.

Setelah menggunakan Revo Uninstaller untuk memulai uninstall firefox, membatalkan uninstaller firefox kemudian membiarkan Revo memindai kunci registri yang tersisa, saya menemukan kunci lain: HKLM\SOFTWARE\RegisteredApplications . Ini tampaknya menyimpan semua program yang terdaftar sehingga windows dapat diberi tahu tentang fungsinya.

Jadi setelah mengatur StartMenuInternetkunci, tambahkan kunci HKLM\SOFTWARE\RegisteredApplicationsuntuk menunjuk ke Software\Clients\StartMenuInternet\YOURPROGRAM\Capabilities- ya, persis seperti itu, dimulai dengan Software\:

Cuplikan layar regedit (Saya tidak dapat menanamkan gambar sampai saya memiliki 10 rep ...)


-1

Agar program Anda (YName.exe) dianggap sebagai browser, program tersebut harus didaftarkan:

1) ... StartMenuInternet - seperti dijelaskan di atas,

HKCU \ Software \ Clients \ StartMenuInternet \ YName \ Capabilities \ URLAssociations

http = YNameURL

https = YNameURL

2) HKCU \ Software \ RegisteredApplications - seperti yang dijelaskan di atas:

YName = Perangkat Lunak \ Clients \ StartMenuInternet \ YName \ Capabilities

3) HKCU \ Software \ Classes \ YNameURL \ shell \ open \ command

@ = Path \ YName.exe

4) HKCU \ Software \ Classes \ Applications \ YName.exe \ shell \ open \ command

@ = Path \ YName.exe



1
Selamat Datang di Pengguna Super ! Harap dicatat bahwa jawaban harus dalam bahasa Inggris (seluruhnya).
Glorfindel

(1)  Pengguna Super adalah situs yang hanya berbahasa Inggris. Hapus bagian jawaban Anda yang tidak dalam bahasa Inggris. (2) Setiap jawaban harus dapat berdiri (masuk akal) dengan sendirinya. Yang ini tidak. Jawaban tidak boleh mengatakan "seperti yang dijelaskan di atas" mengacu pada jawaban lain. Harap edit ini sehingga masuk akal dengan sendirinya. Tidak apa-apa untuk menyalin bagian dari jawaban lain selama Anda memberi kredit. (3) Sebagian besar dari apa yang dikatakan ini tampaknya sudah dikatakan. Harap jelaskan informasi baru apa yang Anda tambahkan.
Scott
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.