Как установить браузер по умолчанию для моего приложения?

Я сделал программу для обработки http-ссылок. Как мне установить в качестве браузера по умолчанию мой exe? Мне нужно изменить только протокол http, а не ассоциации файлов. Я уже настроил обработку аргументов командной строки. Я не хочу использовать файл .reg, поскольку он спрашивает пользователя о добавлении ключей.


person msbg    schedule 14.10.2012    source источник


Ответы (3)


Вы можете запустить regedit в автоматическом режиме ("/ S").

Или запустите cmd-скрипт:

reg add HKEY_CLASSES_ROOT\http\shell\open\command /ve /d "path\to\app \"%1\"" /f

(для зарегистрированного обработчика http - перезаписать существующий пустой параметр в ключе "\ shell \ open \ command").

Обновление. Также вы можете поэкспериментировать с браузером по умолчанию (HKEY_CURRENT_USER \ SOFTWARE \ Clients \ StartMenuInternet) согласно статья MSDN. Но вы также можете обрабатывать локальные файлы.

person mikalai    schedule 14.10.2012
comment
Я пробовал это, и он отображается в редакторе реестра, но если я открываю ярлык в Интернете или запускаю адрес http, Firefox по-прежнему открывается, а не моя программа. - person msbg; 14.10.2012
comment
Вы должны были упомянуть об этом. Вы тоже пробовали HKEY_CURRENT_USER \ Software \ Classes \ http \ shell \ open \ command? Это конкретный ключ текущего пользователя, сопоставленный с HCR. - person mikalai; 14.10.2012
comment
Ключ http не существует в HKEY_CURRENT_USER \ Software \ Classes на обоих моих компьютерах. Я изменил HKEY_CURRENT_USER \ SOFTWARE \ Clients \ StartMenuInternet с firefox.exe на путь моего браузера, и никаких изменений не произошло. - person msbg; 18.10.2012

@TomTom Извините, у меня недостаточно комментариев для комментариев. ;)

Тот факт, что Firefox и пара других браузеров популярны, не означает, что он каким-то образом «особенный» в том смысле, что он может спросить вас, хотите ли вы изменить настройку. Нет НИКАКОЙ причины, по которой приложение, созданное на заказ, не может делать то же самое.

@msbg, поскольку вы там прокомментировали, вы, вероятно, уже нашли свой ответ на как изменить браузер по умолчанию с помощью C # или пакетного файла

Есть еще один ответ на странице Как найти все браузеры, установленные на компьютер, который ссылается на http://msdn.microsoft.com/en-us/library/dd203067%28VS.85%29.aspx

person zaTricky    schedule 18.04.2013

Вы не. Это не настройка, специфичная для программы, это общесистемная настройка.

Что вы МОЖЕТЕ сделать, так это запустить конкретный exe (просмотр) и указать ему URL-адрес в качестве параметра. Но, как правило, извините, это настройка системы (даже не пользователя) iirc.

person TomTom    schedule 14.10.2012
comment
Существует общесистемный параметр, который сообщает Windows, что ваш обработчик (exe) существует, и еще один параметр в HKCU, который устанавливает предпочтения для вашего пользователя. - person Matthew Kennedy; 15.10.2012
comment
Но оба не относятся к конкретному приложению. Что имеет смысл - пользователь выбирает веб-браузер. Живите с выбором. - person TomTom; 15.10.2012
comment
Это возможно, все основные браузеры могут установить себя по умолчанию. - person msbg; 18.10.2012
comment
@msbg Нет, не могут. Я предлагаю читать предложения или статьи от начала до конца - вы становитесь лучше. Они могут быть настроены как браузер по умолчанию для всей системы или для ПОЛЬЗОВАТЕЛЯ, но НЕ ДЛЯ КОНКРЕТНОГО ПРИЛОЖЕНИЯ. Может быть, вы недостаточно хорошо понимаете английский, чтобы читать вопрос? Он спрашивает конкретно о приложении (когда вы щелкаете гиперссылку в приложении X, используйте Chrome, а не систему по умолчанию). - person TomTom; 18.10.2012