Так, ви можете його скриптувати за допомогою прямого маніпулювання реєстром.
Короткий відповідь
Скопіюйте кожен з наступних в .regфайли (наприклад firefox.reg, chrome.reg, ie.reg) і запускати їх , коли ви хочете , щоб перемикач (або сценарій з reg.exe).
Для Firefox:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
Для Chrome:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"
Для IE9:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"
Довга відповідь
Windows зберігає стандартний протокол для кожного користувача під UrlAssociationsключ, знайдений на
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
Аналогічно асоціаціям файлів, для посилань може бути "Програма за замовчуванням". Це своєрідна термінологія жаргону, на яку посилається UserChoiceключ - також існує стандартна реєстрація оболонок, подібних до асоціації файлів під httpProgId, яку також можна змінити, але проксимальна конфігурація для браузерів здійснюється за допомогою програм за замовчуванням (див. Знизу для додаткового коментаря до цього ).
Про що я тут говорю, - це те, що ви змінюєте, перейшовши до розділу Програми за замовчуванням на панелі керування, щоб встановити браузер:

Щоб налаштувати це безпосередньо в реєстрі, спочатку перевіримо, що вже є. У цьому скріншоті я перейшов до цієї клавіші regedit.exe, а Chrome - мій браузер за замовчуванням, позначений ChromeHTMLзначенням ProgId.

Мінімальна зміна, яку потрібно внести для переключення браузера, який відкриється при натисканні на посилання, - це зміна ProgIdзначення під UserChoiceпідрозділом у кожному протоколі, який ви хочете змінити (можливо, httpі httpsбуде однаковим, але якщо ви чомусь хотіли зробити кожен з тих, які відкриті в окремих браузерах, ви могли).
Тепер справа лише в тому, щоб визначити, що використовувати для Firefox, IE та будь-якого іншого браузера, на який ви можете перейти. Якщо ви хочете визначити це програмно, ви можете зробити це, заглибившись у Capabilitiesключ реєстрації браузера, знайдений тут для Firefox:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet там перераховані всі браузери, і кожен повинен мати вищевказану структуру.

З інспекції видно, що якби я хотів перейти на Firefox, я б використав FirefoxURLзначення резервного копіювання в UrlAssociations.
(Однак, якщо ви не хотіли копатися так, є швидкий обман: просто встановіть браузер, який ви хочете, як за замовчуванням, і оновіть regedit, щоб побачити, що браузер встановив для UserChoice!)
Все, що нам потрібно зробити, - це змінити це ключове значення FirefoxURL, і тепер відкриваються посилання у Firefox. Після цього ви можете або натиснути посилання, або двічі перевірити на панелі керування, чи правильно зареєстровано правильний стандарт:

Тепер, якщо ви звернули пильну увагу, ви, можливо, помітили пару недоліків у всьому цьому:
IE не має URLAssociationsпідрозділу під реєстрацією браузера в StartMenuInternet, так звідки береться значення ProgId? Відповідь: Я не знаю, принаймні не без додаткових досліджень. Він може бути жорстко закодований або знайдений в іншому ключі, якого я ще не знайшов.
Firefox ProgId під цим URLAssociationsє FirefoxURL, але коли ви натискаєте, щоб зареєструватися в параметрах у самому браузері, він використовує FirefoxHTMLяк ProgId! Чому? Знову ж таки, я не знаю. Вони обидва працюють, тому що вони обидва існують і вказують на Firefox. Можливо, це навмисно, але це, мабуть, просто помилка без ефекту.
Що відбувається, коли немає UserChoiceпрограми за замовчуванням? Відповідь: використовується "звичайна" асоціація файлів для протоколу (наприклад, http). Це знаходиться в стандартних Progid місцях так само , як асоціації файлів ( HKCU\Software\Classes, HKLM\Software\Classes, і вид на HKCR). Принаймні, Chrome встановлює цю інформацію там, я думаю, але Firefox не здається, принаймні в моїх тестах.
Рекомендую, якщо ви хочете, щоб це було додано до редактора програм за замовчуванням, вам слід запропонувати та викласти його на сторінці зворотного зв’язку UserVoice цієї програми . Я вважаю, що автор програми звертає увагу на цей зворотній зв'язок, вирішуючи, як витратити час на його розробку!