2016-04-26 2 views
3

Я хочу иметь возможность изменять браузер по умолчанию (и другие ассоциации) с помощью программы на C#, аналогичной тому, как у браузеров есть опция «Сделать браузер по умолчанию».Как я могу программно установить браузер по умолчанию в Windows 10

Я попытался изменить HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ Shell \ Ассоциации \ UrlAssociations \ http \ UserChoice, но Windows просто обнаруживает подделку, даже если я восстановил Hash и ProgId до предыдущего значения. Кажется, Хэш уникален, основанный на времени

+0

Пожалуйста, прекратите возиться с компьютером людей. Выбор браузера - это выбор пользователя. – Phil1970

+0

Сообщите об этом Microsoft. Мои настройки по умолчанию - Chrome, Paint NET, Daum Player, но они все еще спрашивают каждые несколько месяцев. Как мы должны открывать этот файл, рекомендуется: Edge, Paint, Video – allanx2000

ответ

0

От MSDN document позвоните SHChangeNotify, чтобы изменить браузер по умолчанию.

void NotifySystemOfNewRegistration() 
{ 
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_DWORD | SHCNF_FLUSH, nullptr, nullptr); 
    Sleep(1000); 
} 

Если вы хотите вручную изменить раздел реестра для конкретного браузера, возможно, вам придется изменить эти ключи.

  • HKEY_CLASSES_ROOT.htm
  • HKEY_CLASSES_ROOT.html
  • HKEY_CLASSES_ROOT \ HTTP \ оболочки открытой команды \ \
  • HKEY_CLASSES_ROOT \ HTTP \ Shell \ Open \ ddeexec \ Application
  • HKEY_CLASSES_ROOT \ FTP \ оболочки \ открытая команда \
  • HKEY_CLASSES_ROOT \ FTP \ оболочки \ открытым \ ddeexec \ Application
  • HKEY_CLASSES_ROOT \ суслик \ оболочки \ открытая команда \
  • HKEY_CLASSES_ROOT \ суслик \ оболочки \ открытым \ ddeexec \ Application

Эти ключи поставляются из MSDN

1

Вы можете сделать это, запустив небольшую программу, которую я написал под названием Set Default Browser.