Я боролся с этой проблемой с момента перехода на Chrome, когда она только появилась. К сожалению, Chrome не предназначен (или в настоящее время достаточно интеллектуален) для включения аргументов командной строки, когда он регистрируется как браузер по умолчанию.
Я представил вопрос, чтобы просить, чтобы Chrome / Chromium включали аргументы командной строки при регистрации в качестве браузера по умолчанию, но не останавливайтесь на достигнутом. (Они, очевидно, не заинтересованы в исправлении этого.)
Tl; dr: пропустить следующий абзац.
Мое первое решение - чтение обходного пути - изначально было создать.REG-файл для ручной настройки командной строки для каждого из различных мест, которые необходимо зарегистрировать (для файлов HTM *, для протоколов HTTP *, для гиперссылок и т.д.) Конечно, это стало совершенно несостоятельным, особенно потому, что я использовал расширяемые строки (которые экспортируются в файлы REG в виде нечитаемого / не редактируемого двоичного текста), чтобы я мог использовать переменные среды. Я не рекомендую этот метод.
Моим следующим (и текущим) решением было создание трех переменных среды: browser
, browser_args
и browser_args_cu
. Первая переменная просто содержит путь к EXE-файлу браузера. Второй содержит аргументы командной строки для браузера (если есть), а последний содержит специфичные для пользователя аргументы (например, местоположение папки userdata). Затем я просто заменил все экземпляры, где необходимо зарегистрировать браузер (см. Список ниже), на расширяемую строку %browser% %browser_args_cu% %browser_args% -- "%1"
и создал (4KB) REG-файл.
Теперь я могу зарегистрировать свой «браузер» по своему выбору, объединяя мой REG-файл только один раз. Если я хочу изменить свой браузер, мне не нужно редактировать файл REG; все, что мне нужно сделать, это изменить одну или две переменные окружения (например, в свойствах системы), что гораздо проще. Кроме того, я могу в любое время запустить браузер с соответствующей командной строкой, выполнив короткую команду %browser% %browser_args_cu% %browser_args% -- "%1"
и даже протестировать другие параметры, прикрепив их к концу, или лучше просто поместить переменные в пакетный файл или ярлык (например, с именем browser
). Затем, например, чтобы установить расширение, не сталкиваясь с серьезной ошибкой, которую я пытался исправить, я могу просто закрыть Chromium, затем запустить browser --single-process
или открыть страницу расширения прямо как browser --single-process https://chrome.google.com/webstore/detail/…
.
Список мест в реестре, где установлен Chrome/Chromium:
[HKLM\SOFTWARE\Clients\StartMenuInternet\Chromium\shell\open\command]
[HKLM\SOFTWARE\Clients\StartMenuInternet\Google Chrome\shell\open\command]
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe]
[HKCR\Applications\chrome.exe\shell\open\command]
[HKCR\ChromeExt\shell\open\command]
[HKCR\ChromeHTML\shell\open\command]
[HKCR\ChromiumExt\shell\open\command]
[HKCR\ChromiumHTML\shell\open\command]
[HKCR\ftp\shell\open\command]
[HKCR\http\shell\open\command]
[HKCR\https\shell\open\command]
[HKCR\MacromediaFlashPaper.MacromediaFlashPaper\shell\open\command]
[HKCR\pdf_auto_file\shell\open\command] (these two are custom for opening
[HKCR\svg_auto_file\shell\open\command] PDF and SVG files with)