How to determine the Windows default browser (at the top of the start menu)
HKEY_CURRENT_USER\Software\Classes\http\shell\open\command\(Default)
is the current user's handler for the HTTP protocol (which means "default browser"; NOTE: this is NOT the same thing as the .html
default handler!).
However, it is possible to have a different browser at the top of Start Menu without changing the default. FYI, the browser executable name in Start menu is stored in HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\(Default)
.
Tested in Windows 7 x64:This is a two step process. The user's default browser is in key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice\Progid
Common browser Key Name:
- IE: IE.AssocFile.HTM
- FireFox: FirefoxHTML
- Chrome: ChromeHTML
- Opera: Opera.HTML
Replace <KEY NAME>
below with one of the values above to find the executable:
HKCR\<KEY NAME>\shell\open\command
Autohotkey script to display the default browser path and executable:
MsgBox % "Default browser: " Browser()Browser(){ ; Find the Registry key name for the default browser RegRead, BrowserKeyName, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice, Progid ; Find the executable command associated with the above Registry key RegRead, BrowserFullCommand, HKEY_CLASSES_ROOT, %BrowserKeyName%\shell\open\command ; The above RegRead will return the path and executable name of the brower contained within qoutes and optional parameters ; We only want the text contained inside the first set of quotes which is the path and executable ; Find the ending quote position (we know the beginning quote is in position 0 so start searching at position 1) StringGetPos, pos, BrowserFullCommand, ",,1 ; Decrement by one for the StringMid to work correctly pos := --pos ; Extract and return the path and executable of the browser StringMid, BrowserPathandEXE, BrowserFullCommand, 2, %pos% Return BrowserPathandEXE}