I wrote this because I was unable to find any working tools on the Internet to correctly change the default browser association in Windows (such as if you want to use a portable edition of a browser).
The problem with all of the other tools on the Internet is that they do not correctly handle .URL files. Since .URL files are text files - they have to be passed to "HKEY_CLASSES_ROOT\InternetShortcut" where the URL gets parsed by shdocvw.dll and then passed to HKEY_CLASSES_ROOT\http. With other tools - the .URL files would open as text files in the browser instead of opening the actual URL itself. This script does it correctly.
Silent mode: If no command line arguments will show GUI. Will run in silent mode if argument passed to it on command line. Silent mode if successful does not write anything to command line / stdout (Autohotkey does not natively support writing to stdio)- if you are running in silent mode and the utility runs without any popups or warning dialogs - then the change was successful. Silent mode example: DefaultBrowserInRegistry.exe "D:\PortableApps\GoogleChromePortable\GoogleChromePortable.exe"