Как определить браузер по умолчанию в Windows (в верхней части меню Пуск )
Как определить браузер Windows по умолчанию (в верхней части меню "Пуск")?
Я использую VB6, но, вероятно, могу адаптировать другой код без проблем.
есть аналогичные вопросы о переполнении стека, но они, похоже, дают неправильные ответы.
например, ключ HKEY_LOCAL_MACHINESoftwareClientsStartMenuInternet содержит как Internet Explorer, так и Firefox на моем ПК.
и получение .html ассоциация терпит неудачу для меня, а также, как HTML-файлы связаны с IE, но Firefox - это мой браузер по умолчанию.
обратите внимание, что я не хочу открывать браузер, просто получить его имя.
3 ответов
HKEY_CURRENT_USER\Software\Classes\http\shell\open\command\(Default)
является обработчиком текущего пользователя для протокола HTTP (что означает "браузер по умолчанию"; Примечание: это не то же самое, что .html
обработчик по умолчанию!).
тем не менее, можно иметь другой браузер в верхней части меню "Пуск" без изменения значения по умолчанию. FYI, исполняемое имя браузера в меню "Пуск" хранится в HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\(Default)
.
протестировано в Windows 7 x64: Это двухэтапный процесс. Браузер по умолчанию в ключе:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice\Progid
общее имя ключа браузера:
- Т. Е.: Т. Е..AssocFile.НТМ
- FireFox: FirefoxHTML
- Chrome: ChromeHTML
- Опера: Опера.HTML-код
заменить <KEY NAME>
ниже с одним из значений выше, чтобы найти исполняемый файл:
HKCR\<KEY NAME>\shell\open\command
AutoHotkey скрипт для отображения пути браузера по умолчанию и исполняемый файл:
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
}
браузеры по умолчанию обычно устанавливаются для каждого пользователя. Вы пробовали HKEY_CURRENT_USER вместо этого? Появляется на моем под ним правильно.