Which registry keys need to be edited to change the default browser?

You don’t edit the registry manually. You execute the command specified by the browser creator in the key HKLM\SOFTWARE\Clients\StartMenuInternet\[BROWSER NAME.EXE]\InstallInfo, value ReinstallCommand.

For example, for MSIE it’s "C:\Windows\System32\ie4uinit.exe" -reinstall, and for Firefox it is "X:\path\to\Firefox\uninstall\helper.exe" /SetAsDefaultAppGlobal.

Each browser sets its own registry entries. But you can try finding the common ones by comparing the REG files in these forum threads:

  • http://www.tomshardware.com/forum/170215-46-default-browser-registry
  • http://forums.techarena.in/technology-internet/1112113.htm

It looks like you missed some registry keys (.html, .htm, gopher etc.).

Which registry keys need to be edited to change the default browser? I have found these keys so far and they seem to do what I want, but I am not sure if I have found all of them…

You haven’t; you forgot .html files, .htm files, .url bookmarks, and so on.

The fact is that a browser is much like a media player. There is no single “default media-player” setting; rather there are separate and individual file-associations for each file-type and protocol that the media-player supports. The same goes for browser; there is no single “default browser” setting; only associations for each type it supports.

In the case of browsers, they usually support, at a minimum, .html and .htm files, .url bookmarks, and http, https, and ftp protocols.

I doubt any modern browsers still have any gopher:// support!

Says who? A browser could easily support the gopher protocol and archie and magnet links and emule links and .torrent files and .svg files and .mp4 files and Flash files and so on and so on.

To properly set a browser as “the default”, it has to be associated with each file-type and protocol that it supports (or at the very least, each one that you intend to use it with).